/home/travis/build/open62541/open62541/src/ua_types_encoding_binary.h
Go to the documentation of this file.
00001 #ifndef UA_TYPES_ENCODING_BINARY_H_
00002 #define UA_TYPES_ENCODING_BINARY_H_
00003 
00004 #include "ua_types.h"
00005 
00033 #define UA_TYPE_BINARY_ENCODING(TYPE)                                   \
00034     size_t TYPE##_calcSizeBinary(TYPE const *p);                        \
00035     UA_StatusCode TYPE##_encodeBinary(TYPE const *src, UA_ByteString *dst, size_t *offset); \
00036     UA_StatusCode TYPE##_decodeBinary(UA_ByteString const *src, size_t *offset, TYPE *dst);
00037 
00038 UA_TYPE_BINARY_ENCODING(UA_Boolean)
00039 UA_TYPE_BINARY_ENCODING(UA_SByte)
00040 UA_TYPE_BINARY_ENCODING(UA_Byte)
00041 UA_TYPE_BINARY_ENCODING(UA_Int16)
00042 UA_TYPE_BINARY_ENCODING(UA_UInt16)
00043 UA_TYPE_BINARY_ENCODING(UA_Int32)
00044 UA_TYPE_BINARY_ENCODING(UA_UInt32)
00045 UA_TYPE_BINARY_ENCODING(UA_Int64)
00046 UA_TYPE_BINARY_ENCODING(UA_UInt64)
00047 UA_TYPE_BINARY_ENCODING(UA_Float)
00048 UA_TYPE_BINARY_ENCODING(UA_Double)
00049 UA_TYPE_BINARY_ENCODING(UA_String)
00050 UA_TYPE_BINARY_ENCODING(UA_DateTime)
00051 UA_TYPE_BINARY_ENCODING(UA_Guid)
00052 UA_TYPE_BINARY_ENCODING(UA_ByteString)
00053 UA_TYPE_BINARY_ENCODING(UA_XmlElement)
00054 UA_TYPE_BINARY_ENCODING(UA_NodeId)
00055 UA_TYPE_BINARY_ENCODING(UA_ExpandedNodeId)
00056 UA_TYPE_BINARY_ENCODING(UA_StatusCode)
00057 UA_TYPE_BINARY_ENCODING(UA_QualifiedName)
00058 UA_TYPE_BINARY_ENCODING(UA_LocalizedText)
00059 UA_TYPE_BINARY_ENCODING(UA_ExtensionObject)
00060 UA_TYPE_BINARY_ENCODING(UA_DataValue)
00061 UA_TYPE_BINARY_ENCODING(UA_Variant)
00062 UA_TYPE_BINARY_ENCODING(UA_DiagnosticInfo)
00063 
00064 size_t UA_calcSizeBinary(const void *p, const UA_DataType *dataType);
00065 UA_StatusCode UA_encodeBinary(const void *src, const UA_DataType *dataType, UA_ByteString *dst, size_t *offset);
00066 UA_StatusCode UA_decodeBinary(const UA_ByteString *src, size_t *offset, void *dst, const UA_DataType *dataType);
00067 
00068 size_t UA_Array_calcSizeBinary(const void *p, UA_Int32 noElements, const UA_DataType *dataType);
00069 UA_StatusCode UA_Array_encodeBinary(const void *src, UA_Int32 noElements, const UA_DataType *dataType,
00070                                     UA_ByteString *dst, size_t *offset);
00071 UA_StatusCode UA_Array_decodeBinary(const UA_ByteString *src, size_t *offset, UA_Int32 noElements,
00072                                     void **dst, const UA_DataType *dataType);
00073 
00075 
00076 #endif /* UA_TYPES_ENCODING_BINARY_H_ */