00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _C_PROTOCOLFRAME_H
00021 #define _C_PROTOCOLFRAME_H
00022
00023 #include "C_MessageFrame.hpp"
00024 #include "list_t.hpp"
00025 #include "ExternalMethod.h"
00026 #include "ParamDefConfig.h"
00027
00028
00029 class C_ProtocolStatsFrame ;
00030
00031 typedef struct _struct_inst_data {
00032 char *m_instance_name ;
00033 int m_instance_id ;
00034 int m_id ;
00035 } T_InstanceData, *T_pInstanceData ;
00036
00037 typedef list_t<T_InstanceData> T_InstanceDataList,
00038 *T_pInstanceDataList ;
00039
00040 typedef struct _struct_name_id {
00041 char *m_name;
00042 int m_id ;
00043 } T_NameAndId, *T_pNameAndId ;
00044 typedef list_t<T_NameAndId> T_NameAndIdList, *T_pNameAndIdList ;
00045
00049 class C_ProtocolFrame {
00050
00051 public:
00052
00053
00055 typedef enum _protocol_type {
00056 E_PROTOCOL_BINARY,
00057 E_PROTOCOL_EXTERNAL,
00058 E_PROTOCOL_TEXT,
00059 E_PROTOCOL_UNKNOWN
00060 } T_ProtocolType, *T_pProtocolType ;
00061
00063 typedef enum _msg_error_code {
00064 E_MSG_OK = 0,
00065 E_MSG_ERROR_DECODING,
00066 E_MSG_ERROR_DECODING_SIZE_LESS,
00067 E_MSG_ERROR_ENCODING,
00068 E_MSG_EXTERNAL_ERROR,
00069 E_MSG_INTERNAL_ERROR
00070 } T_MsgError, *T_pMsgError ;
00071
00072
00073 C_ProtocolFrame() {m_type = E_PROTOCOL_UNKNOWN; m_name=NULL; m_stats = NULL;} ;
00074 virtual ~C_ProtocolFrame() {} ;
00075
00077 T_ProtocolType get_type() { return (m_type); }
00078
00080 virtual C_MessageFrame* create_new_message (C_MessageFrame *P_msg) = 0 ;
00081
00082
00083
00085 virtual C_MessageFrame* create_new_message (void *P_xml,
00086 T_pInstanceDataList P_list,
00087 int *P_nb_body_value) = 0 ;
00088
00089 virtual char* message_name () = 0 ;
00090 virtual char* message_component_name () = 0 ;
00091 virtual T_pNameAndIdList message_name_list () = 0 ;
00092 virtual T_pNameAndIdList message_component_name_list () = 0 ;
00093 virtual bool find_present_session (int P_msg_id,int P_id) = 0 ;
00094
00095
00096
00097
00098 virtual int find_field (char *P_name) = 0 ;
00099 virtual T_TypeType get_field_type (int P_id,
00100 int P_sub_id) = 0 ;
00101 virtual bool check_sub_entity_needed (int P_id) = 0 ;
00102
00103 C_ProtocolStatsFrame* get_stats () { return (m_stats); }
00104 void set_stats (C_ProtocolStatsFrame *P_stats) {
00105 m_stats = P_stats ;
00106 }
00107
00108 virtual T_ExternalMethod find_method_extern(char *P_name){return NULL;}
00109
00110
00111 char* name() { return(m_name); }
00112
00113 protected:
00114
00115 C_ProtocolStatsFrame *m_stats ;
00116 T_ProtocolType m_type ;
00117 char *m_name ;
00118
00119 } ;
00120
00121 typedef C_ProtocolFrame *T_pC_ProtocolFrame ;
00122
00123
00124 #endif // _C_PROTOCOLFRAME_H
00125
00126
00127
00128