C_ProtocolExternal Class Reference

Inheritance diagram for C_ProtocolExternal:

C_ProtocolExternalFrame C_ProtocolFrame List of all members.

Public Types

typedef C_ProtocolExternal::_field_def_t T_DefField
typedef C_ProtocolExternal::_field_def_tT_pDefField

Public Member Functions

 C_ProtocolExternal (C_TransportControl *P_transport_control, C_XmlData *P_def, char **P_name, T_pConfigValueList P_config_value_list, T_ConstructorResult *P_res)
 ~C_ProtocolExternal ()
C_MessageFramecreate_new_message (C_MessageFrame *P_msg)
C_MessageFramecreate_new_message (void *P_xml, T_pInstanceDataList P_list, int *P_nb_body_value)
char * message_name ()
char * message_component_name ()
T_pNameAndIdList message_name_list ()
T_pNameAndIdList message_component_name_list ()
int find_field (char *P_name)
bool find_present_session (int P_msg_id, int P_id)
T_TypeType get_field_type (int P_id, int P_sub_id)
bool check_sub_entity_needed (int P_id)
char * get_string_value (int P_id, T_pValueData P_data)
char * get_string_value_field_body (int P_id, T_pValueData P_data)
C_MsgBuildContextFactoryget_factory ()
C_ProtocolFrame::T_MsgError from_external (C_MsgBuildContext *P_build, T_pReceiveMsgContext P_recvMsgCtx)
C_ProtocolFrame::T_MsgError to_external (C_MsgBuildContext *P_build, C_MessageFrame *P_msg)
void log_message (char *P_header, C_MessageFrame *P_msg)

Classes

struct  _field_body_t
struct  _field_def_t
struct  _field_desc_t
struct  _field_value_t
struct  _fielddef_body_t
struct  _fielddef_header_t
struct  _fielddef_t

Detailed Description

Definition at line 39 of file C_ProtocolExternal.hpp.


Member Function Documentation

C_MessageFrame * C_ProtocolExternal::create_new_message void *  P_xml,
T_pInstanceDataList  P_list,
int *  P_nb_body_value
[virtual]
 

Create a new message

Implements C_ProtocolFrame.

Definition at line 338 of file C_ProtocolExternal.cpp.

References C_MessageExternal::m_id.

00340                                                                                          {
00341   // xml message analysis 
00342   C_XmlData         *P_data = (C_XmlData *)P_xml ;
00343   T_FieldHeaderList *L_field_list = NULL ;
00344   int                L_ret = 0 ;
00345   C_MessageExternal *L_msg = NULL ;
00346   T_MessageNameMap::iterator L_it ;
00347 
00348   if (P_data != NULL) {
00349     L_field_list = analyze_header_value(P_data, L_field_list, false, &L_ret);
00350   }
00351   
00352   if (L_ret != -1) {
00353     if (L_field_list != NULL) {
00354       if (!L_field_list->empty()) {
00355         L_it = m_message_map->find(T_MessageNameMap::key_type((*(L_field_list->begin())).m_name));
00356         if (L_it == m_message_map->end()) {
00357           GEN_ERROR(E_GEN_FATAL_ERROR,
00358                     "Unknown message [" << (*(L_field_list->begin())).m_name << "] in dictionnary");
00359         } else {
00360           L_msg = build_message(L_it->second, *(L_field_list->begin()), P_list, P_nb_value);
00361           if (L_msg != NULL) {
00362             L_msg -> m_id = L_it->second->m_id ;
00363 
00364             // L_msg->dump(std::cerr);
00365 
00366           } 
00367         }
00368       }
00369     }
00370   }
00371   
00372   return (L_msg);
00373 }

C_MessageFrame * C_ProtocolExternal::create_new_message C_MessageFrame P_msg  )  [virtual]
 

Create a new message

Implements C_ProtocolFrame.

Definition at line 325 of file C_ProtocolExternal.cpp.

00325                                                                              {
00326   C_MessageExternal *L_dest = NULL ;
00327   C_MessageExternal *L_source = dynamic_cast<C_MessageExternal *>(P_msg) ;
00328   
00329   if (L_source != NULL) {
00330     // L_source->dump(std::cerr);
00331     //    NEW_VAR(L_dest, C_MessageExternal());
00332     //    *L_dest = *L_source ;
00333     NEW_VAR(L_dest, C_MessageExternal(*L_source));
00334   }
00335   return (L_dest);
00336 }


The documentation for this class was generated from the following files:
Generated on Wed Mar 7 14:57:55 2007 for Seagull by  doxygen 1.4.6