C_ProtocolTlv Class Reference

Inheritance diagram for C_ProtocolTlv:

C_ProtocolBinaryFrame C_ProtocolFrame List of all members.

Public Types

typedef enum C_ProtocolTlv::_enum_msg_id_type T_MsgIdType
typedef enum C_ProtocolTlv::_enum_msg_id_typeT_pMsgIdType
typedef C_ProtocolTlv::_cond_value T_CondPresence
typedef C_ProtocolTlv::_cond_valueT_pCondPresence
typedef map_t< string_t, int > T_IdMap
typedef map_t< string_t, int > * T_pIdMap
typedef map_t< unsigned long,
int > 
T_DecodeMap
typedef map_t< unsigned long,
int > * 
T_pDecodeMap
typedef C_ProtocolTlv::_struct_header_field T_HeaderField
typedef C_ProtocolTlv::_struct_header_fieldT_pHeaderField
typedef C_ProtocolTlv::_struct_header_value T_HeaderValue
typedef C_ProtocolTlv::_struct_header_valueT_pHeaderValue
typedef C_ProtocolTlv::_struct_header_body_value T_HeaderBodyValue
typedef C_ProtocolTlv::_struct_header_body_valueT_pHeaderBodyValue
typedef C_ProtocolTlv::_struct_protocol_counter_data T_ProtocolCounterData
typedef C_ProtocolTlv::_struct_protocol_counter_dataT_pProtocolCounterData
typedef list_t< T_ProtocolCounterDataT_ProtocolCounterDataList
typedef list_t< T_ProtocolCounterData > * T_pProtocolCounterDataList
typedef C_ProtocolTlv::_struct_body_value T_BodyValue
typedef C_ProtocolTlv::_struct_body_valueT_pBodyValue
typedef C_ProtocolTlv::_struct_body_def T_BodyValueDef
typedef C_ProtocolTlv::_struct_body_defT_pBodyValueDef
typedef C_ProtocolTlv::_struct_management_session_id T_ManagementSessionId
typedef C_ProtocolTlv::_struct_management_session_idT_pManagementSessionId
typedef list_t< T_ManagementSessionIdT_ManagementSessionIdList
typedef list_t< T_ManagementSessionId > * T_pManagementSessionIdList
typedef C_ProtocolTlv::_struct_update_ctxt_value T_UpdateCtxtValue
typedef C_ProtocolTlv::_struct_update_ctxt_valueT_pUpdateCtxtValue
typedef C_ProtocolTlv::_struct_update_ctxt_position T_UpdateCtxtPosition
typedef C_ProtocolTlv::_struct_update_ctxt_positionT_pUpdateCtxtPosition
enum  _enum_msg_id_type { E_MSG_ID_HEADER = 0, E_MSG_ID_BODY }

Public Member Functions

 C_ProtocolTlv ()
virtual void construction_data (C_XmlData *P_def, char **P_name, T_pContructorResult P_res)
 ~C_ProtocolTlv ()
virtual C_MessageFramedecode_message (unsigned char *P_buffer, size_t *P_size, C_ProtocolFrame::T_pMsgError P_error)
C_ProtocolFrame::T_MsgError encode_message (C_MessageFrame *P_msg, unsigned char *P_buffer, size_t *P_buffer_size)
virtual C_MessageFramecreate_new_message (C_MessageFrame *P_msg)
virtual C_MessageFramecreate_new_message (void *P_xml, T_pInstanceDataList P_list, int *P_nb_value)
char * message_name ()
char * message_component_name ()
T_pNameAndIdList message_name_list ()
T_pNameAndIdList message_component_name_list ()
char * message_name (int P_headerId)
void log_buffer (char *P_header, unsigned char *P_buf, size_t P_size)
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)
int retrieve_field_id (int P_id, T_pMsgIdType P_type)
void update_stats (T_ProtocolStatDataType P_type, T_ProtocolStatDataAction P_action, int P_id)
T_MsgIdType get_msg_id_type ()
int get_msg_id ()
T_TypeType get_msg_id_value_type ()
T_MsgIdType get_out_of_session_id_type ()
int get_out_of_session_id ()
int get_header_type_id_body ()
int get_header_type_id ()
int get_header_length_id ()
int get_header_length_index ()
unsigned long get_nb_field_header ()
unsigned long get_header_size ()
T_pHeaderField get_header_field_description (int P_id)
T_pHeaderField get_header_field_description (char *P_name)
T_pHeaderValue get_header_value_description (int P_id)
T_pTypeDef get_type_description (int P_id)
T_pTypeDef get_type_description (char *P_name)
int get_header_body_type_id ()
int get_header_body_length_id ()
int get_header_body_length_index ()
unsigned long get_nb_field_header_body ()
unsigned long get_header_body_size ()
T_pHeaderField get_header_body_field_description (int P_id)
T_pHeaderField get_header_body_field_description (char *P_name)
T_pHeaderBodyValue get_header_body_value_description (int P_id)
unsigned long get_m_max_nb_field_header ()
char * get_header_name ()
char * get_header_body_name ()
int get_header_value_id (char *P_name)
int get_header_body_value_id (char *P_name)
int set_body_value (int P_id, char *P_value, int P_nb, T_pBodyValue P_res, bool *P_del=NULL)
int set_body_sub_value (int P_index, int P_id, char *P_value, T_pBodyValue P_res)
void set_body_value (T_pBodyValue P_res, T_pBodyValue P_val)
void delete_header_value (T_pValueData P_res)
void delete_body_value (T_pBodyValue P_res)
void reset_grouped_body_value (T_pBodyValue P_res)
void encode_header (int P_id, unsigned char *P_buf, size_t *P_size)
void encode_header (int P_id, T_pValueData P_headerVal, unsigned char *P_buf, size_t *P_size, C_ProtocolContext *P_ctxt_protocol, C_ProtocolFrame::T_pMsgError P_error)
virtual C_ProtocolFrame::T_MsgError encode_body (int P_nbVal, T_pBodyValue P_val, unsigned char *P_buf, size_t *P_size, C_ProtocolContext *P_ctxt_protocol)
int decode_header (unsigned char **P_buf, size_t P_size, T_pValueData P_valDec, int *P_headerId, C_ProtocolContext *P_ctxt_protocol)
virtual int decode_body (unsigned char **P_buf, T_pBodyValue P_valDec, int *P_nbValDec, int *P_headerId, C_ProtocolContext *P_ctxt_protocol)
C_ProtocolContextcreate_protocol_context ()
void delete_protocol_context (C_ProtocolContext **P_protocol_ctxt)
void reset_protocol_context (C_ProtocolContext *P_protocol_context)
void update_ctxt_values (C_ProtocolContext *P_protocol_context, unsigned char *P_buf_pos, int P_field_id, int P_size, T_pUpdateCtxtValue P_ctxt_id_v_table, T_pUpdateCtxtPosition P_ctxt_p_table)
int update_ctxt_values_decode (C_ProtocolContext *P_protocol_context, int P_field_id, int P_size, T_pUpdateCtxtValue P_ctxt_id_v_table)
void propagate_ctxt_global (C_ProtocolContext *P_protocol_context)
int find_header_field_id (char *P_name)
int find_header_body_id (char *P_name)
int find_body_value_id (char *P_name)
void get_header_values (int P_id, T_pValueData P_val)
void set_header_values (T_pValueData P_dest, T_pValueData P_orig)
void set_header_value (int P_id, T_pValueData P_dest, T_pValueData P_orig)
void set_body_values (int P_nb, T_pBodyValue P_dest, T_pBodyValue P_orig)
void reset_header_values (int P_nb, T_pValueData P_val)
void reset_body_values (int P_nb, T_pBodyValue P_val)
void get_body_values (int P_id, T_pBodyValue P_val, int *P_nbVal)
virtual void get_body_value (T_pValueData P_dest, T_pBodyValue P_orig)
virtual void set_body_value (T_pBodyValue P_dest, T_pValueData P_orig)
virtual T_ManagementSessionIdget_manage_session_elt (int P_id)
virtual int get_nb_management_session ()
virtual bool check_present_session (int P_msg_id, int P_id)
virtual bool find_present_session (int P_msg_id, int P_id)
iostream_output & print_header (iostream_output &P_stream, int P_headerId, T_pValueData P_val)
virtual iostream_output & print_body (iostream_output &P_stream, int P_nb, T_pBodyValue P_val, int P_level=0)
T_TypeType get_body_value_type (int P_id)
T_TypeType get_header_value_type (int P_id)
void reset_value_data (T_pValueData P_val)
void convert_to_string (T_pValueData P_res, T_pValueData P_val)
void set_padding (unsigned long P_value)
bool get_header_length_excluded ()
unsigned long get_msg_length_start ()
bool get_msg_length_start_detected ()
bool get_complex_header_presence ()
char * get_header_body_field_separator ()
int analyze_setfield (C_XmlData *P_data, int *P_fieldId, unsigned long *P_fieldValueUl)

Protected Types

typedef map_t< string_t, int > T_LengthIdMap
typedef map_t< string_t, int > * T_pLengthIdMap
typedef list_t< int > T_IdCtxtList
typedef list_t< int > * T_pIdCtxtList

Protected Member Functions

int update_ctxt_v_field (T_pUpdateCtxtValue P_ctxt_id_v_table, int P_nb_field, T_pProtocolCounterData P_ctxt_table, int P_nb_ctxt_table, T_pUpdateCtxtValue P_ctxt_global_v_table, int P_counter_last_id)
int ctrl_length (char *P_length_name, bool P_header)
int update_field_length (int P_length_id, int P_field_id, T_pProtocolCounterDataList P_length_list, bool P_header)
void propagate_ctxt_local (C_ProtocolContext *P_protocol_context, int P_id_begin, int P_id_end, T_pHeaderField P_field_table, T_pProtocolCounterData P_ctxt_table)
void update_ctxt_length (C_ProtocolContext *P_protocol_context, unsigned long P_valueSize)
int update_ctxt_length_decode (C_ProtocolContext *P_protocol_context, unsigned long P_data_size)
int add_length (char *P_length_name)
int check_length (char *P_length_name)
char * is_variable (char *P_varibleString)
int add_counter_id (char *P_value_string, bool P_header)
int add_counter (char *P_name, unsigned long P_init)
int add_type (char *P_name, T_TypeType P_type, unsigned long P_size)
int add_header_field (char *P_name, unsigned long P_size, unsigned long *P_nb_field, unsigned long *P_header_size, T_pHeaderField P_field_table, T_pIdMap P_map, int P_counter_id=-1, T_pCondPresence P_condPresence=NULL, long P_type_id=-1)
void set_header_type_id (int P_id)
void set_header_length_id (int P_id)
void set_header_body_type_id (int P_id)
void set_header_body_length_id (int P_id)
int get_header_from_xml (C_XmlData *P_def)
int get_types_from_xml (C_XmlData *P_def)
virtual int xml_interpretor (C_XmlData *P_def)
virtual int analyze_header_from_xml (C_XmlData *P_def)
virtual int analyze_types_from_xml (C_XmlData *P_def)
virtual int analyze_body_from_xml (C_XmlData *P_def)
int analyze_dictionnary_from_xml (C_XmlData *P_def)
virtual int analyze_sessions_id_from_xml (C_XmlData *P_def)
virtual int get_header_body_values_from_xml (C_XmlData *P_def)
virtual int get_header_values_from_xml (C_XmlData *P_def)
int get_header_body_from_xml (C_XmlData *P_def)
int get_header_body_optional_from_xml (C_XmlData *P_def)
int get_counter_from_xml (C_XmlData *P_def)
bool check_presence_needed (T_pCondPresence P_condition, unsigned long *P_values)
int process_grouped_type (C_XmlData *P_bodyData, int P_body_grouped_val_id, T_pBodyValue P_pBodyVal)

Protected Attributes

T_pLengthIdMap m_length_map
int m_length_max
int m_nb_protocol_ctxt_values
T_pUpdateCtxtValue m_header_ctxt_v_table
T_pUpdateCtxtValue m_header_body_ctxt_v_table
T_pUpdateCtxtPosition m_header_ctxt_p_table
T_pUpdateCtxtPosition m_header_body_ctxt_p_table
char * m_header_name
T_pHeaderField m_header_field_table
T_pIdMap m_header_id_map
char * m_header_type_name
int m_header_type_id_body
int m_header_type_id
int m_header_length_id
int m_header_length_index
unsigned long m_nb_field_header
unsigned long m_max_nb_field_header
unsigned long m_header_size
int m_transport_type
unsigned long m_msg_length_start
bool m_msg_length_start_detected
T_pProtocolCounterData m_header_length_table
int m_nb_header_length_table
int m_nb_header_length
int m_counter_id_last_length
int m_ctxt_id_data_size
T_pProtocolCounterData m_header_body_length_table
int m_nb_header_body_length_table
int m_nb_header_body_length
char * m_header_body_name
T_pHeaderField m_header_body_field_table
T_pIdMap m_header_body_id_map
int m_header_body_type_id
int m_header_body_length_id
int m_header_body_length_index
unsigned long m_nb_field_header_body
unsigned long m_max_nb_field_header_body
unsigned long m_header_body_size
int m_header_body_start_optional_id
bool m_header_complex_type_presence
T_pNameAndIdList m_message_name_list
T_pNameAndIdList m_message_comp_name_list
char * m_header_body_field_separator
int m_session_id_position
T_pTypeDef m_type_def_table
unsigned long m_nb_types
unsigned long m_max_nb_types
T_pIdMap m_type_id_map
unsigned long m_nb_header_values
T_pHeaderValue m_header_value_table
T_pIdMap m_header_value_id_map
T_pDecodeMap m_header_decode_map
T_pBodyValueDef m_body_value_table
unsigned long m_nb_header_body_values
T_pHeaderBodyValue m_header_body_value_table
T_pIdMap m_header_body_value_id_map
T_pDecodeMap m_header_body_decode_map
T_MsgIdType m_msg_id_type
int m_msg_id_id
T_TypeType m_msg_id_value_type
T_MsgIdType m_type_id_out_of_session
int m_id_out_of_session
unsigned long m_padding_value
bool m_header_length_excluded
list_t< C_MessageFrame * > * m_messageList

Classes

struct  _cond_value
struct  _struct_body_def
struct  _struct_body_value
struct  _struct_header_body_value
struct  _struct_header_field
struct  _struct_header_value
struct  _struct_management_session_id
struct  _struct_protocol_counter_data
struct  _struct_update_ctxt_position
struct  _struct_update_ctxt_value

Detailed Description

Definition at line 36 of file C_ProtocolTlv.hpp.


Member Function Documentation

C_MessageFrame * C_ProtocolTlv::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 5276 of file C_ProtocolTlv.cpp.

References analyze_setfield(), delete_body_value(), C_XmlData::find_value(), get_body_value_type(), get_header_body_name(), get_header_body_value_id(), get_header_name(), get_header_value_id(), C_XmlData::get_name(), m_header_body_field_separator, C_ProtocolTlv::_struct_body_value::m_id, _struct_value::m_id, C_ProtocolTlv::_struct_body_value::m_sub_val, _struct_value::m_type, C_ProtocolTlv::_struct_body_value::m_value, _struct_value::m_value, process_grouped_type(), reset_grouped_body_value(), set_body_value(), C_MessageTlv::set_body_value(), C_MessageTlv::set_header_id_value(), and C_MessageTlv::set_header_value().

05278                                                                                       {
05279 
05280 
05281   C_XmlData *L_Xml = (C_XmlData*) P_xml ;
05282 
05283   bool                            L_msgOk = true ;
05284 
05285   C_MessageTlv                 *L_msg ;
05286   char                            *L_currentName ;
05287   
05288   //   C_ProtocolBinaryFrame::T_MsgError L_decode_result ;
05289   C_ProtocolFrame::T_MsgError L_decode_result ;
05290   
05291   unsigned char            *L_buf ;
05292   size_t                    L_size ;
05293   
05294   int                       L_header_val_id ;
05295   int                       L_body_val_id   ;
05296   
05297   GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() start: xml");
05298   
05299   // Allocate a new message
05300   NEW_VAR(L_msg, C_MessageTlv(this));
05301 
05302   // two cases: direct buffer to be decoded or
05303   //            direct message definition
05304 
05305   // Get the message name from XML definition
05306   L_currentName = L_Xml -> get_name () ;
05307 
05308   GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() msg xml name is "
05309             << L_currentName );
05310       
05311   if (strcmp(L_currentName, (char*)"CDATA") == 0) {
05312         
05313     // direct buffer data definition
05314     // unsigned long L_ret_decode ;
05315     L_currentName = L_Xml->find_value((char*)"value");
05316     
05317     L_buf = convert_hexa_char_to_bin(L_currentName, &L_size);
05318     (void) L_msg -> decode(L_buf, L_size, &L_decode_result);
05319     
05320     //    if (L_decode_result != C_ProtocolBinaryFrame::E_MSG_OK) 
05321     if (L_decode_result != C_ProtocolFrame::E_MSG_OK) {
05322       GEN_ERROR(E_GEN_FATAL_ERROR, 
05323                 "Error while decoding direct data buffer ["
05324                 << L_currentName << "]");
05325       L_msgOk = false ;
05326     }
05327         
05328   } else if (strcmp(L_currentName, get_header_name()) == 0) {
05329         
05330     // message decoding
05331     L_currentName = L_Xml -> find_value ((char*) "name") ;
05332     if (L_currentName == NULL) {
05333       GEN_ERROR(E_GEN_FATAL_ERROR, 
05334                 "name value is mandatory for ["
05335                 << get_header_name()
05336                 << "]");
05337       L_msgOk = false ;
05338     } else {
05339       GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " 
05340                 << "the name of this message is " << L_currentName );
05341 
05342       L_header_val_id = get_header_value_id(L_currentName) ;
05343 
05344       GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " 
05345                 << "L_header_val_id = " << L_header_val_id );
05346 
05347       if (L_header_val_id == -1) {
05348         GEN_ERROR(E_GEN_FATAL_ERROR,
05349                   "unknown name ["
05350                   << L_currentName << "] for [" << get_header_name() << "]");
05351         L_msgOk = false ;
05352 
05353       } else { 
05354 
05355         // now search for body values
05356         T_pXmlData_List           L_listBodyVal ;
05357         T_XmlData_List::iterator  L_bodyValIt ;
05358         C_XmlData                *L_bodyData ;
05359         // int                       L_nbBodyVal ;
05360         char                     *L_bodyName, *L_bodyValue ;
05361         C_ProtocolTlv::T_BodyValue   L_bodyVal ;
05362         T_TypeType                L_type ; 
05363 
05364         L_msg->set_header_id_value(L_header_val_id);
05365         
05366         L_listBodyVal = L_Xml -> get_sub_data() ;
05367         if (L_listBodyVal != NULL) {
05368           // L_nbBodyVal = L_listBodyVal->size() ;
05369           for (L_bodyValIt  = L_listBodyVal->begin() ;
05370                L_bodyValIt != L_listBodyVal->end() ;
05371                L_bodyValIt++) {
05372             L_bodyData = *L_bodyValIt ;
05373             
05374             // GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " << 
05375                       // "L_bodyData name is [" << L_bodyData->get_name() << "]");
05376             // GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " << 
05377                       // "get_header_body_name() is [" 
05378                       // << get_header_body_name() << "]");
05379               
05380             if (strcmp(L_bodyData->get_name(), 
05381                        get_header_body_name())==0) {
05382               
05383               L_bodyName = L_bodyData->find_value((char*)"name");
05384               if (L_bodyName == NULL) {
05385                 GEN_ERROR(E_GEN_FATAL_ERROR,
05386                           "name value is mandatory for ["
05387                           << get_header_body_name()
05388                           << "] definition");
05389                 L_msgOk = false ;
05390               }
05391                 
05392               GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() "
05393                         << "L_bodyName is    [" << L_bodyName << "]");
05394 
05395               L_body_val_id = get_header_body_value_id(L_bodyName) ;
05396               if (L_body_val_id == -1) {
05397                 GEN_ERROR(E_GEN_FATAL_ERROR,
05398                           "No definition found for ["
05399                           << L_bodyName << "]");
05400                 L_msgOk = false ;
05401                 break ;
05402               } 
05403                 
05404               GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " 
05405                         << "L_body_val_id is " 
05406                         << L_body_val_id );
05407               
05408               L_type = get_body_value_type (L_body_val_id) ;
05409               if (L_type 
05410                   == E_TYPE_GROUPED) {
05411 
05412                 GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " 
05413                              << L_bodyName << " is  grouped element" );
05414 
05415 
05416                 if (process_grouped_type(L_bodyData, L_body_val_id, 
05417                                          &L_bodyVal) != 0) {
05418                   GEN_ERROR(E_GEN_FATAL_ERROR,
05419                             "Grouped Type processing Error for "
05420                             << L_bodyName);
05421                   L_msgOk = false ;
05422                   break ;
05423                 }
05424 
05425 
05426                 // Add the grouped value in message
05427                 L_msg->set_body_value(&L_bodyVal);
05428 
05429                 // Now do not forget to clean L_bodyVal
05430                 reset_grouped_body_value(&L_bodyVal);
05431                 FREE_TABLE(L_bodyVal.m_sub_val);
05432               } else { 
05433                 bool L_toBeDelete = false;
05434 
05435                 // not grouped value
05436                 L_bodyValue = L_bodyData->find_value((char*)"value");
05437                 if (L_bodyValue == NULL) {
05438                   GEN_ERROR(E_GEN_FATAL_ERROR,
05439                             "value is mandatory for ["
05440                             << get_header_body_name()
05441                             << "] definition");
05442                   L_msgOk = false ;
05443                   break ;
05444                 }
05445                 
05446                 GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() " 
05447                           << "L_bodyValue is \"" << L_bodyValue << "\"" );
05448                 
05449                 if (set_body_value(L_body_val_id, 
05450                                    L_bodyValue,
05451                                    1,
05452                                    &L_bodyVal,
05453                                    &L_toBeDelete) == 0) {
05454 
05455                   if (m_header_body_field_separator == NULL) {
05456                     L_msg->set_body_value(&L_bodyVal);
05457                   } else {
05458                     T_ValueData L_tmp_value ;
05459                     bool        L_exist     ;
05460                     L_tmp_value.m_value = L_bodyVal.m_value ;
05461                     L_tmp_value.m_id = L_bodyVal.m_id ;
05462                     L_tmp_value.m_type = L_type;
05463                     L_exist = L_msg->set_body_value(L_body_val_id,&L_tmp_value);
05464                     if (L_exist == false) {
05465                       L_msg->set_body_value(&L_bodyVal);
05466                     }
05467                   }
05468 
05469                   if (L_toBeDelete) {
05470                     // Now do not forget to clean L_bodyVal
05471                    delete_body_value(&L_bodyVal);
05472                   }
05473 
05474                 } else {
05475                   GEN_ERROR(E_GEN_FATAL_ERROR,
05476                             "Bad format for ["
05477                             << L_bodyValue << "]");
05478                   L_msgOk = false ;
05479                   break ;
05480                 }
05481               } // end to else not grouped
05482             } else if (strcmp(L_bodyData->get_name(),
05483                               (char*)"setfield")==0) {
05484               unsigned long   L_val_setfield = 0 ;
05485               int             L_id_setfield   = 0 ;
05486               L_msgOk = (analyze_setfield(L_bodyData, &L_id_setfield ,&L_val_setfield) == -1) 
05487                 ? false : true  ;
05488               if (L_msgOk) {
05489                 L_msg->set_header_value(L_id_setfield, L_val_setfield);
05490               }
05491               
05492             } else {
05493               GEN_ERROR(E_GEN_FATAL_ERROR, 
05494                         "Unkown section ["
05495                         << L_bodyData->get_name()
05496                         << "]");
05497               L_msgOk = false;
05498               break ;
05499             }
05500             if (L_msgOk == false) break ;
05501           } // for (L_bodyValIt
05502         } // if (L_listBodyVal != NULL)
05503       }
05504     }
05505   }
05506 
05507   // TO-REMOVE
05508   if (L_msgOk == false) {
05509     DELETE_VAR(L_msg);
05510   } else {
05511     // Store the description message in list
05512     m_messageList->push_back(L_msg);
05513   }
05514 
05515   GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() end: xml");
05516 
05517   return (L_msg);
05518 }

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

Create a new message

Implements C_ProtocolFrame.

Definition at line 5263 of file C_ProtocolTlv.cpp.

Referenced by decode_message().

05263                                                                        {
05264 
05265   C_MessageTlv *L_msg ;
05266 
05267   GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() start: msg pt");
05268   NEW_VAR(L_msg, C_MessageTlv(this));
05269   if (P_msg != NULL) {
05270     (*L_msg) = *((C_MessageTlv*)P_msg) ;
05271   }
05272   GEN_DEBUG(1, "C_ProtocolTlv::create_new_message() end: msg pt");
05273   return (L_msg);
05274 }


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