C_ProtocolText Class Reference

Inheritance diagram for C_ProtocolText:

C_ProtocolTextFrame C_ProtocolFrame List of all members.

Public Types

typedef C_ProtocolText::_struct_management_session_id T_ManagementSessionTextId
typedef C_ProtocolText::_struct_management_session_idT_pManagementSessionTextId
typedef list_t< T_ManagementSessionTextIdT_ManagementSessionTextIdList
typedef list_t< T_ManagementSessionTextId > * T_pManagementSessionTextIdList
typedef C_ProtocolFrame::T_MsgError(C_MessageText::* T_BodyDecodeMethod )(int P_index, char *P_ptr, size_t *P_size)
typedef C_ProtocolFrame::T_MsgError(C_MessageText::* T_EncodeMethod )(int P_index)
typedef T_pValueData(C_MessageText::* T_SessionMethod )(C_ContextFrame *P_void)

Public Member Functions

 C_ProtocolText ()
void analyze_data (C_XmlData *P_def, char **P_name, T_pConfigValueList P_config_value_list, T_pContructorResult P_res)
 ~C_ProtocolText ()
C_MessageFramedecode_message (unsigned char *P_buffer, size_t *P_size, C_ProtocolTextFrame::T_pMsgError P_error)
C_ProtocolTextFrame::T_MsgError encode_message (C_MessageFrame *P_msg, unsigned char *P_buffer, size_t *P_buffer_size)
void log_buffer (char *P_header, unsigned char *P_buf, size_t P_size)
char * message_name ()
char * message_component_name ()
T_pNameAndIdList message_name_list ()
T_pNameAndIdList message_component_name_list ()
char * message_name (int P_Id)
int find_field (char *P_name)
T_TypeType get_field_type (int P_id, int P_sub_id)
bool check_sub_entity_needed (int P_id)
bool find_present_session (int P_msg_id, int P_id)
C_MessageFramecreate_new_message (C_MessageFrame *P_msg)
C_MessageFramecreate_new_message (void *P_xml, T_pInstanceDataList P_list, int *P_nb_value)
char * get_field_value_to_check (C_MessageText *P_msg, int P_id, int *P_size)
char * get_field_value (C_MessageText *P_msg, int P_id)
char * get_field_value (C_MessageText *P_msg, int P_id, C_RegExp *P_regexp_data)
int set_field_value (C_MessageText *P_msg, int P_id, T_pValueData P_value)
int get_message_id (char *P_name)
T_pManagementSessionTextId get_manage_session_elt (int P_id)
int get_nb_management_session ()
iostream_output & print_header_msg (iostream_output &P_stream, int P_id, T_pValueData P_header)
iostream_output & print_data_msg (iostream_output &P_stream, T_pValueData P_data)
C_MessageTextcreate (C_ProtocolText *P_protocol, char *P_header, char *P_body)
int find_field_id (char *P_name)

Friends

class C_MessageText

Classes

struct  _cdata_value_t
struct  _defmethod_t
struct  _field_desc_t
struct  _fielddef_header_t
struct  _fielddef_t
struct  _regexp_str_t
struct  _struct_body_decode_data
struct  _struct_management_session_id
union  _union_param

Detailed Description

Definition at line 41 of file C_ProtocolText.hpp.


Member Function Documentation

C_MessageFrame * C_ProtocolText::create_new_message void *  P_xml,
T_pInstanceDataList  P_list,
int *  P_nb_value
[virtual]
 

Create a new message

Implements C_ProtocolFrame.

Definition at line 708 of file C_ProtocolText.cpp.

00710                                                                                     {
00711 
00712   C_MessageText                  *L_msg                = NULL               ;
00713   C_XmlData                      *P_data               = (C_XmlData *)P_xml ;
00714   int                             L_ret                = 0                  ;
00715   T_pCDATAValueList               L_list_value         = NULL               ;
00716 
00717   T_CDATAValueList::iterator      L_cdata_it                                ;
00718   char                           *L_header             = NULL               ;
00719   char                           *L_body               = NULL               ;
00720   int                             L_i                  = 0                  ;
00721 
00722   NEW_VAR(L_list_value, T_CDATAValueList());
00723 
00724   // analyze message from scenario 
00725   L_ret = analyze_message_scen(P_data, L_list_value) ;
00726 
00727   if (L_ret != -1) {
00728     if ((L_list_value != NULL ) && (!(L_list_value)->empty())) {  
00729       for (L_cdata_it = (L_list_value)->begin();
00730            L_cdata_it != (L_list_value)->end();
00731            L_cdata_it++) {
00732         if (L_i == 0) {
00733           L_header = (*L_cdata_it).m_value ;
00734         } else if (L_i == 1) {
00735           L_body = (*L_cdata_it).m_value ;
00736         } else {
00737           // To Do if we have many value
00738           break ;
00739         }
00740         L_i++ ;
00741       }
00742     } else {
00743       GEN_ERROR(E_GEN_FATAL_ERROR, "C_ProtocolText::create_new_message() "
00744                 << "no value found for this message [" << m_header_name << "]");
00745       L_ret = -1 ;
00746     }
00747   }
00748     
00749   if (L_ret != -1) {
00750     L_msg = create(this,L_header,L_body);
00751     if (L_msg == NULL) {
00752       GEN_ERROR(E_GEN_FATAL_ERROR, "C_ProtocolText::create_new_message() "
00753                 << "Error while creating message with header [" 
00754                 << L_header 
00755                 << "]: message not in dictionary?");
00756     }
00757   }
00758   
00759   // delete L_list_value 
00760   if (L_list_value != NULL ) {
00761     if (!L_list_value->empty()) {
00762       L_list_value->erase(L_list_value->begin(),
00763                           L_list_value->end());
00764     }
00765     DELETE_VAR(L_list_value);
00766   }
00767 
00768   return (L_msg);
00769 
00770 }

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

Create a new message

Implements C_ProtocolFrame.

Definition at line 664 of file C_ProtocolText.cpp.

References C_MessageText.

00664                                                                          {
00665   C_MessageText *L_dest = NULL ;
00666 
00667   C_MessageText *L_source = dynamic_cast<C_MessageText *>(P_msg) ;
00668   
00669   if (L_source != NULL) {
00670     // L_source->dump(std::cerr);
00671     NEW_VAR(L_dest, C_MessageText(*L_source));
00672   } else {
00673     NEW_VAR(L_dest, C_MessageText(this));
00674   }
00675 
00676   return (L_dest);
00677 }


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