Data Types and Subroutines for UDFs and In-process Adapters

A datatype is one of the internal forms of data used by the Sybase CEP Engine.

The data types are:

C8Int: A signed 32-bit integer.

C8UInt: An unsigned 32-bit integer.

C8Long: A signed 64-bit integer.

C8ULong: An unsigned 64-bit integer.

C8Bool: A true/false switch. Because of C requirements, this has been defined as C8_TRUE and C8_FALSE.

C8Timestamp: Time expressed in microseconds since midnight January 1, 1970 UTC (GMT).

C8Interval: An interval expressed in microseconds.

C8Float: Double-precision floating point numbers (64-bit).

C8CharPtr: A basic character pointer, corresponding to the STRING data type in CCL.

C8Char *: Another form of a basic character pointer, corresponding to the STRING data type in CCL.

C8Blob: A BLOB.

C8BlobPtr: A pointer to a BLOB.

The C SDK treats XML data as a string and thus uses C8CharPtr rather than defining an XML datatype such as "C8XML ".

BLOB data may be stored in one of 3 formats:

Each Sybase CEP C/C++ SDK function that uses hex string format (either for input parameters or return values) will contain "HexString" somewhere in the name, for example, C8ConvertHexStringToBlob(). If the function uses base64 string format, then the function will contain "Base64String" somewhere in the name. If the function returns or accepts BLOBs and does not have "HexString" or "Base64String" in the name, then the function handles BLOBs in raw format.

To ensure that the data types are portable, the c8types.h header file includes a typedef for each of these data types.