00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _PROTOCOLDATATYPE_H
00021 #define _PROTOCOLDATATYPE_H
00022
00023 #include "list_t.hpp"
00024 #include "integer_t.hpp"
00025
00026 typedef enum _enum_type_type {
00027 E_TYPE_NUMBER = 0,
00028 E_TYPE_SIGNED,
00029
00030 E_TYPE_STRING,
00031 E_TYPE_STRUCT,
00032 E_TYPE_GROUPED,
00033 E_TYPE_NUMBER_64,
00034 E_TYPE_SIGNED_64,
00035 E_UNSUPPORTED_TYPE
00036 } T_TypeType, *T_pTypeType ;
00037
00038 typedef struct _val_binary {
00039 unsigned char *m_value ;
00040 size_t m_size ;
00041 } T_ValueBinary ;
00042
00043 typedef struct _val_dialog_id {
00044 long m_id_1 ;
00045 long m_id_2 ;
00046 } T_ValueDialogId ;
00047
00048 typedef union _union_value_data {
00049 T_ValueBinary m_val_binary ;
00050 T_UnsignedInteger32 m_val_number ;
00051 T_Integer32 m_val_signed ;
00052 T_ValueDialogId m_val_struct ;
00053 T_UnsignedInteger64 m_val_number_64 ;
00054 T_Integer64 m_val_signed_64 ;
00055 } T_Value, *T_pValue ;
00056
00057 typedef struct _struct_value {
00058 unsigned long m_id ;
00059 T_TypeType m_type ;
00060 T_Value m_value ;
00061 } T_ValueData, *T_pValueData ;
00062
00063 typedef list_t<T_pValueData> T_ValueDataList,
00064 *T_pValueDataList ;
00065
00066
00067 typedef struct _struct_multi_value {
00068 int m_nb ;
00069 T_pValueData *m_values ;
00070 } T_MultiValueData, *T_pMultiValueData ;
00071
00072 typedef struct _struct_tuple_value {
00073 T_pValueData m_value ;
00074 T_pValueData m_value_data ;
00075 } T_TupleValueData, *T_pTupleValueData ;
00076
00077
00078 typedef struct _struct_type_def {
00079 int m_id ;
00080 char *m_name ;
00081 unsigned long m_size ;
00082 T_TypeType m_type ;
00083 } T_TypeDef, *T_pTypeDef ;
00084
00085
00086 #endif // _PROTOCOLDATATYPE_H
00087
00088
00089
00090
00091
00092
00093