#define BIOSYM_IPC_VERSION "BiosymIpcVersion" #define BIOSYM_IPC_MESSAGE "Message" #define BIOSYM_IPC_DATATYPE "DataType" #define BIOSYM_IPC_NUMITEM "NumItem" #define BIOSYM_IPC_NUMELEMENT "NumElement" #define BIOSYM_IPC_NUMBYTE "NumByte" #define BIOSYM_IPC_END_HEADER "EndBiosymIpcHeader"The header keywords have the following meanings:
Keyword Description ===================================================================== # comment character; ignore line --------------------------------------------------------------------- BiosymIpcVersion indicates the version of IPC protocol used --------------------------------------------------------------------- Message arbitrary message < BIOSYM_IPC_MESSAGE_MAX bytes, currently 128 --------------------------------------------------------------------- DataType see table below --------------------------------------------------------------------- NumItem # of distinct items, e.g., coordinate triples --------------------------------------------------------------------- NumElement # of data per item, e.g. 3 for coordinates --------------------------------------------------------------------- NumByte total # of bytes in the subsequent data block --------------------------------------------------------------------- EndBiosymIpcHeader binary data begins immediately after the newline ---------------------------------------------------------------------No ordering is imposed on the header information with the exception that EndBiosymIpcHeader must appear last. Not all header records are needed for a particular IPC frame; the byte count will not appear for non-string data.
typedef enum { BiosymIpcType_Integer, /* long */ BiosymIpcType_Real8, /* double */ BiosymIpcType_String } BiosymIpcType;
#define BIOSYM_IPC_TYPE_INTEGER "integer" #define BIOSYM_IPC_TYPE_REAL8 "real8" #define BIOSYM_IPC_TYPE_STRING "string"
#define BIOSYM_IPC_VERSION_CUR "94.0" #define BIOSYM_IPC_VERSION_LEN 64 /* max length of remove version string */ #define BIOSYM_IPC_MESSAGE_MAX 128 /* max IPC frame message length */ #define BIOSYM_IPC_HEADER_MAX 256 /* max length of any ASCII header line */
typedef struct { char message[BIOSYM_IPC_MESSAGE_MAX]; BiosymIpcType type; /* Data type for this entry */ long numItem; /* # of items for this entry */ long numElement; /* # of data elements per item (e.g., 3 for coordinates) */ long numByte; /* # of bytes total in data block (only needed for strings) */ union { /* Pointer to the actual data */ void *data; long *integer; double *real8; char **string; } data; } BiosymIpcData;
IPC Main Page
C Application Program Interface
FORTRAN Application Program Interface
Copyright Biosym/MSI