Difference between revisions of "V4 Requirements for Standard Types"

From EPICSWIKI
Line 6: Line 6:


This header will include a set of <tt>typedef</tt>s (OS dependent if necessary) as follows:
This header will include a set of <tt>typedef</tt>s (OS dependent if necessary) as follows:
== epicsBoolean ==
A boolean type.


== epicsInt16 ==
== epicsInt16 ==
Line 41: Line 45:
== epicsOctet ==
== epicsOctet ==


An (unsigned?) 8-bit character type.  This is not intended for numeric operations, just for use when storing and manipulating UTF-8 encoded character strings.
An (unsigned?) 8-bit character type.  This is not intended for numeric operations, just for storing and manipulating Unicode/UTF-8 encoded strings.


== epicsString ==
== epicsString ==


A UTF-8 encoded Unicode character string.
A Unicode/UTF-8 encoded string.


Since this type does not map directly to any native C/C++ type, we're going to have to discuss the implementation and facilities we'll provide.  Marty has a proposal for an implementation taking into account Jeff's ideas and the requirements of character encoding conversions that I'll link to here when it's ready for public consumption.
Since this type does not map directly to any native C/C++ type, we're going to have to discuss the implementation and facilities we'll provide.  Marty has a proposal for an interface that supports both segmented and contiguous buffer management and the requirements of character encoding conversionsI'll link to that proposal from here when it's ready for public consumption.

Revision as of 19:56, 19 May 2005

The purpose of this page is to discuss and agree on a set of standard basic data types that will be supported throughout EPICS V4. As at 2005-5-19 the latest implementation of Data Access doesn't support all the types that the V4 database is proposed to support; we should try to converge on a common set.

If you wish to comment, please use the "Post a comment" link under "This Page" in the left-hand column of this page; your comment will be added to the bottom of the Talk page which you can read here.

epicsTypes.h

This header will include a set of typedefs (OS dependent if necessary) as follows:

epicsBoolean

A boolean type.

epicsInt16

A signed (2s-complement) 16-bit integer type.

epicsUint16

An unsigned 16-bit integer type.

epicsInt32

A signed (2s-complement) 32-bit integer type.

epicsUint32

An unsigned 32-bit integer type.

epicsInt64

A signed (2s-complement) 64-bit integer type.

epicsUint64

An unsigned 64-bit integer type.

epicsFloat32

A 32-bit IEEE floating-point numeric type.

epicsFloat64

A 64-bit IEEE floating-poing numeric type.

epicsOctet

An (unsigned?) 8-bit character type. This is not intended for numeric operations, just for storing and manipulating Unicode/UTF-8 encoded strings.

epicsString

A Unicode/UTF-8 encoded string.

Since this type does not map directly to any native C/C++ type, we're going to have to discuss the implementation and facilities we'll provide. Marty has a proposal for an interface that supports both segmented and contiguous buffer management and the requirements of character encoding conversions. I'll link to that proposal from here when it's ready for public consumption.