Main Page   Class Hierarchy   Compound List   File List   Compound Members  

ProtocolDataType.hpp

00001 /*
00002  *  This program is free software; you can redistribute it and/or modify
00003  *  it under the terms of the GNU General Public License as published by
00004  *  the Free Software Foundation; either version 2 of the License, or
00005  *  (at your option) any later version.
00006  *
00007  *  This program is distributed in the hope that it will be useful,
00008  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00009  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00010  *  GNU General Public License for more details.
00011  *
00012  *  You should have received a copy of the GNU General Public License
00013  *  along with this program; if not, write to the Free Software
00014  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00015  *
00016  * (c)Copyright 2006 Hewlett-Packard Development Company, LP.
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   //    E_TYPE_REAL,
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 

Generated on Wed Mar 7 14:44:59 2007 for Seagull by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002