// This C++ header file was generated by the TTCN-3 compiler // of the TTCN-3 Test Executor version 9.0.0 // for (build@3978f7fbee0c) on Mon Jun 24 02:37:33 2024 // Copyright (c) 2000-2023 Ericsson Telecom AB // Do not edit this file unless you know what you are doing. #ifndef DIAMETER__Emulation_HH #define DIAMETER__Emulation_HH #ifdef TITAN_RUNTIME_2 #error Generated code does not match with used runtime.\ Code was generated without -R option but -DTITAN_RUNTIME_2 was used. #endif /* Header file includes */ #include #include "DIAMETER_CodecPort_CtrlFunct.hh" #include "DIAMETER_Templates.hh" #include "SCTP_Templates.hh" #if TTCN3_VERSION != 90000 #error Version mismatch detected.\ Please check the version of the TTCN-3 compiler and the base library.\ Run make clean and rebuild the project if the version of the compiler changed recently. #endif #ifndef LINUX #error This file should be compiled on LINUX #endif #undef DIAMETER__Emulation_HH #endif namespace DIAMETER__Emulation { /* Forward declarations of classes */ class DiameterCapabilityExchgInd; class DiameterCapabilityExchgInd_template; class DIAMETER__Conn__PT; class DIAMETER__PT; class AssociationData; class AssociationData_template; class ETEIDData; class ETEIDData_template; class ExpectData; class ExpectData_template; class DIAMETERCreateCallback; class DIAMETERCreateCallback_template; class DIAMETERUnitdataCallback; class DIAMETERUnitdataCallback_template; class DIAMETEROps; class DIAMETEROps_template; class DIAMETER__conn__parameters; class DIAMETER__conn__parameters_template; class ExpectDataE2EID; class ExpectDataE2EID_template; class DIAMETEREM__register__eteid_call; class DIAMETEREM__register__eteid_call_redirect; class DIAMETEREM__register__eteid_reply; class DIAMETEREM__register__eteid_reply_redirect; class DIAMETEREM__register__eteid_template; class DIAMETEREM__register__imsi_call; class DIAMETEREM__register__imsi_call_redirect; class DIAMETEREM__register__imsi_reply; class DIAMETEREM__register__imsi_reply_redirect; class DIAMETEREM__register__imsi_template; class DIAMETEREM__PROC__PT; } /* end of namespace */ #ifndef DIAMETER__Emulation_HH #define DIAMETER__Emulation_HH namespace DIAMETER__Emulation { /* Type definitions */ typedef HEXSTRING IMSI; typedef HEXSTRING_template IMSI_template; typedef COMPONENT DIAMETER__ConnHdlr; typedef COMPONENT_template DIAMETER__ConnHdlr_template; typedef COMPONENT DIAMETER__Emulation__CT; typedef COMPONENT_template DIAMETER__Emulation__CT_template; /* Class definitions */ class DiameterCapabilityExchgInd { DIAMETER__Types::PDU__DIAMETER field_rx; DIAMETER__Types::PDU__DIAMETER field_tx; public: DiameterCapabilityExchgInd(); DiameterCapabilityExchgInd(const DIAMETER__Types::PDU__DIAMETER& par_rx, const DIAMETER__Types::PDU__DIAMETER& par_tx); DiameterCapabilityExchgInd(const DiameterCapabilityExchgInd& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; DiameterCapabilityExchgInd& operator=(const DiameterCapabilityExchgInd& other_value); boolean operator==(const DiameterCapabilityExchgInd& other_value) const; inline boolean operator!=(const DiameterCapabilityExchgInd& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline DIAMETER__Types::PDU__DIAMETER& rx() {return field_rx;} inline const DIAMETER__Types::PDU__DIAMETER& rx() const {return field_rx;} inline DIAMETER__Types::PDU__DIAMETER& tx() {return field_tx;} inline const DIAMETER__Types::PDU__DIAMETER& tx() const {return field_tx;} inline int size_of() const {return 2;} void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class DiameterCapabilityExchgInd_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; DiameterCapabilityExchgInd_template *list_value; } value_list; struct { DiameterCapabilityExchgInd_template* precondition; DiameterCapabilityExchgInd_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const DiameterCapabilityExchgInd& other_value); void copy_template(const DiameterCapabilityExchgInd_template& other_value); public: DiameterCapabilityExchgInd_template(); DiameterCapabilityExchgInd_template(template_sel other_value); DiameterCapabilityExchgInd_template(const DiameterCapabilityExchgInd& other_value); DiameterCapabilityExchgInd_template(const OPTIONAL& other_value); DiameterCapabilityExchgInd_template(DiameterCapabilityExchgInd_template* p_precondition, DiameterCapabilityExchgInd_template* p_implied_template); DiameterCapabilityExchgInd_template(Dynamic_Match_Interface* p_dyn_match); DiameterCapabilityExchgInd_template(const DiameterCapabilityExchgInd_template& other_value); ~DiameterCapabilityExchgInd_template(); DiameterCapabilityExchgInd_template& operator=(template_sel other_value); DiameterCapabilityExchgInd_template& operator=(const DiameterCapabilityExchgInd& other_value); DiameterCapabilityExchgInd_template& operator=(const OPTIONAL& other_value); DiameterCapabilityExchgInd_template& operator=(const DiameterCapabilityExchgInd_template& other_value); boolean match(const DiameterCapabilityExchgInd& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); DiameterCapabilityExchgInd valueof() const; void set_type(template_sel template_type, unsigned int list_length); DiameterCapabilityExchgInd_template& list_item(unsigned int list_index) const; DIAMETER__Types::PDU__DIAMETER_template& rx(); const DIAMETER__Types::PDU__DIAMETER_template& rx() const; DIAMETER__Types::PDU__DIAMETER_template& tx(); const DIAMETER__Types::PDU__DIAMETER_template& tx() const; int size_of() const; void log() const; void log_match(const DiameterCapabilityExchgInd& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class DIAMETER__Conn__PT : public PORT { enum msg_selection { MESSAGE_0 }; struct msg_queue_item : public msg_queue_item_base { msg_selection item_selection; union { DIAMETER__Types::PDU__DIAMETER *message_0; }; component sender_component; }; void remove_msg_queue_head(); protected: void clear_queue(); public: DIAMETER__Conn__PT(const char *par_port_name = NULL); ~DIAMETER__Conn__PT(); void send(const DIAMETER__Types::PDU__DIAMETER& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER& send_par, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER_template& send_par, FLOAT* timestamp_redirect = NULL); public: alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status receive(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_receive(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status trigger(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); private: void incoming_message(const DIAMETER__Types::PDU__DIAMETER& incoming_par, component sender_component); protected: boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); }; class DIAMETER__PT : public PORT { enum msg_selection { MESSAGE_0, MESSAGE_1 }; struct msg_queue_item : public msg_queue_item_base { msg_selection item_selection; union { DIAMETER__Types::PDU__DIAMETER *message_0; DiameterCapabilityExchgInd *message_1; }; component sender_component; }; void remove_msg_queue_head(); protected: void clear_queue(); public: DIAMETER__PT(const char *par_port_name = NULL); ~DIAMETER__PT(); void send(const DIAMETER__Types::PDU__DIAMETER& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER& send_par, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DIAMETER__Types::PDU__DIAMETER_template& send_par, FLOAT* timestamp_redirect = NULL); void send(const DiameterCapabilityExchgInd& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DiameterCapabilityExchgInd& send_par, FLOAT* timestamp_redirect = NULL); void send(const DiameterCapabilityExchgInd_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void send(const DiameterCapabilityExchgInd_template& send_par, FLOAT* timestamp_redirect = NULL); public: alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status receive(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_receive(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status trigger(const DIAMETER__Types::PDU__DIAMETER_template& value_template, DIAMETER__Types::PDU__DIAMETER *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status receive(const DiameterCapabilityExchgInd_template& value_template, DiameterCapabilityExchgInd *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_receive(const DiameterCapabilityExchgInd_template& value_template, DiameterCapabilityExchgInd *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status trigger(const DiameterCapabilityExchgInd_template& value_template, DiameterCapabilityExchgInd *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); private: void incoming_message(const DIAMETER__Types::PDU__DIAMETER& incoming_par, component sender_component); void incoming_message(const DiameterCapabilityExchgInd& incoming_par, component sender_component); protected: boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); }; class AssociationData { COMPONENT field_comp__ref; OPTIONAL< HEXSTRING > field_imsi; public: AssociationData(); AssociationData(const COMPONENT& par_comp__ref, const OPTIONAL< HEXSTRING >& par_imsi); AssociationData(const AssociationData& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; AssociationData& operator=(const AssociationData& other_value); boolean operator==(const AssociationData& other_value) const; inline boolean operator!=(const AssociationData& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline COMPONENT& comp__ref() {return field_comp__ref;} inline const COMPONENT& comp__ref() const {return field_comp__ref;} inline OPTIONAL< HEXSTRING >& imsi() {return field_imsi;} inline const OPTIONAL< HEXSTRING >& imsi() const {return field_imsi;} int size_of() const; void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class AssociationData_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; AssociationData_template *list_value; } value_list; struct { AssociationData_template* precondition; AssociationData_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const AssociationData& other_value); void copy_template(const AssociationData_template& other_value); public: AssociationData_template(); AssociationData_template(template_sel other_value); AssociationData_template(const AssociationData& other_value); AssociationData_template(const OPTIONAL& other_value); AssociationData_template(AssociationData_template* p_precondition, AssociationData_template* p_implied_template); AssociationData_template(Dynamic_Match_Interface* p_dyn_match); AssociationData_template(const AssociationData_template& other_value); ~AssociationData_template(); AssociationData_template& operator=(template_sel other_value); AssociationData_template& operator=(const AssociationData& other_value); AssociationData_template& operator=(const OPTIONAL& other_value); AssociationData_template& operator=(const AssociationData_template& other_value); boolean match(const AssociationData& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); AssociationData valueof() const; void set_type(template_sel template_type, unsigned int list_length); AssociationData_template& list_item(unsigned int list_index) const; COMPONENT_template& comp__ref(); const COMPONENT_template& comp__ref() const; HEXSTRING_template& imsi(); const HEXSTRING_template& imsi() const; int size_of() const; void log() const; void log_match(const AssociationData& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class ETEIDData { COMPONENT field_comp__ref; OPTIONAL< OCTETSTRING > field_ete__id; public: ETEIDData(); ETEIDData(const COMPONENT& par_comp__ref, const OPTIONAL< OCTETSTRING >& par_ete__id); ETEIDData(const ETEIDData& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; ETEIDData& operator=(const ETEIDData& other_value); boolean operator==(const ETEIDData& other_value) const; inline boolean operator!=(const ETEIDData& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline COMPONENT& comp__ref() {return field_comp__ref;} inline const COMPONENT& comp__ref() const {return field_comp__ref;} inline OPTIONAL< OCTETSTRING >& ete__id() {return field_ete__id;} inline const OPTIONAL< OCTETSTRING >& ete__id() const {return field_ete__id;} int size_of() const; void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class ETEIDData_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; ETEIDData_template *list_value; } value_list; struct { ETEIDData_template* precondition; ETEIDData_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const ETEIDData& other_value); void copy_template(const ETEIDData_template& other_value); public: ETEIDData_template(); ETEIDData_template(template_sel other_value); ETEIDData_template(const ETEIDData& other_value); ETEIDData_template(const OPTIONAL& other_value); ETEIDData_template(ETEIDData_template* p_precondition, ETEIDData_template* p_implied_template); ETEIDData_template(Dynamic_Match_Interface* p_dyn_match); ETEIDData_template(const ETEIDData_template& other_value); ~ETEIDData_template(); ETEIDData_template& operator=(template_sel other_value); ETEIDData_template& operator=(const ETEIDData& other_value); ETEIDData_template& operator=(const OPTIONAL& other_value); ETEIDData_template& operator=(const ETEIDData_template& other_value); boolean match(const ETEIDData& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); ETEIDData valueof() const; void set_type(template_sel template_type, unsigned int list_length); ETEIDData_template& list_item(unsigned int list_index) const; COMPONENT_template& comp__ref(); const COMPONENT_template& comp__ref() const; OCTETSTRING_template& ete__id(); const OCTETSTRING_template& ete__id() const; int size_of() const; void log() const; void log_match(const ETEIDData& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class ExpectData { OPTIONAL< HEXSTRING > field_imsi; COMPONENT field_vc__conn; public: ExpectData(); ExpectData(const OPTIONAL< HEXSTRING >& par_imsi, const COMPONENT& par_vc__conn); ExpectData(const ExpectData& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; ExpectData& operator=(const ExpectData& other_value); boolean operator==(const ExpectData& other_value) const; inline boolean operator!=(const ExpectData& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline OPTIONAL< HEXSTRING >& imsi() {return field_imsi;} inline const OPTIONAL< HEXSTRING >& imsi() const {return field_imsi;} inline COMPONENT& vc__conn() {return field_vc__conn;} inline const COMPONENT& vc__conn() const {return field_vc__conn;} int size_of() const; void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class ExpectData_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; ExpectData_template *list_value; } value_list; struct { ExpectData_template* precondition; ExpectData_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const ExpectData& other_value); void copy_template(const ExpectData_template& other_value); public: ExpectData_template(); ExpectData_template(template_sel other_value); ExpectData_template(const ExpectData& other_value); ExpectData_template(const OPTIONAL& other_value); ExpectData_template(ExpectData_template* p_precondition, ExpectData_template* p_implied_template); ExpectData_template(Dynamic_Match_Interface* p_dyn_match); ExpectData_template(const ExpectData_template& other_value); ~ExpectData_template(); ExpectData_template& operator=(template_sel other_value); ExpectData_template& operator=(const ExpectData& other_value); ExpectData_template& operator=(const OPTIONAL& other_value); ExpectData_template& operator=(const ExpectData_template& other_value); boolean match(const ExpectData& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); ExpectData valueof() const; void set_type(template_sel template_type, unsigned int list_length); ExpectData_template& list_item(unsigned int list_index) const; HEXSTRING_template& imsi(); const HEXSTRING_template& imsi() const; COMPONENT_template& vc__conn(); const COMPONENT_template& vc__conn() const; int size_of() const; void log() const; void log_match(const ExpectData& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class DIAMETERCreateCallback : public Base_Type { public: typedef COMPONENT (*function_pointer)(const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& id); typedef void (*start_pointer)(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& id); private: friend class DIAMETERCreateCallback_template; friend boolean operator==(DIAMETERCreateCallback::function_pointer value, const DIAMETERCreateCallback& other_value); function_pointer referred_function; public: DIAMETERCreateCallback(); DIAMETERCreateCallback(function_pointer other_value); DIAMETERCreateCallback(const DIAMETERCreateCallback& other_value); DIAMETERCreateCallback& operator=(function_pointer other_value); DIAMETERCreateCallback& operator=(const DIAMETERCreateCallback& other_value); boolean operator==(function_pointer other_value) const; boolean operator==(const DIAMETERCreateCallback& other_value) const; inline boolean operator!=(function_pointer other_value) const { return !(*this == other_value); } inline boolean operator!=(const DIAMETERCreateCallback& other_value) const { return !(*this == other_value); } COMPONENT invoke(const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& id) const; void start(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& id) const; inline boolean is_bound() const { return referred_function != NULL; } inline boolean is_value() const { return referred_function != NULL; } inline void clean_up() { referred_function = NULL; } inline void must_bound(const char *err_msg) const { if (referred_function == NULL) TTCN_error("%s", err_msg); } inline boolean is_present() const { return is_bound(); } void log() const; void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; extern boolean operator==(DIAMETERCreateCallback::function_pointer value, const DIAMETERCreateCallback& other_value); inline boolean operator!=(DIAMETERCreateCallback::function_pointer value, const DIAMETERCreateCallback& other_value) { return !(value == other_value); } class DIAMETERCreateCallback_template : public Base_Template { union { DIAMETERCreateCallback::function_pointer single_value; struct { unsigned int n_values; DIAMETERCreateCallback_template *list_value; } value_list; }; void copy_template(const DIAMETERCreateCallback_template& other_value); public: DIAMETERCreateCallback_template(); DIAMETERCreateCallback_template(template_sel other_value); DIAMETERCreateCallback_template(DIAMETERCreateCallback::function_pointer other_value); DIAMETERCreateCallback_template(const DIAMETERCreateCallback& other_value); DIAMETERCreateCallback_template(const OPTIONAL& other_value); DIAMETERCreateCallback_template(const DIAMETERCreateCallback_template& other_value); ~DIAMETERCreateCallback_template(); void clean_up(); DIAMETERCreateCallback_template& operator=(template_sel other_value); DIAMETERCreateCallback_template& operator=(DIAMETERCreateCallback::function_pointer other_value); DIAMETERCreateCallback_template& operator=(const DIAMETERCreateCallback& other_value); DIAMETERCreateCallback_template& operator=(const OPTIONAL& other_value); DIAMETERCreateCallback_template& operator=(const DIAMETERCreateCallback_template& other_value); boolean match(DIAMETERCreateCallback::function_pointer other_value, boolean legacy = FALSE) const; boolean match(const DIAMETERCreateCallback& other_value, boolean legacy = FALSE) const; DIAMETERCreateCallback valueof() const; void set_type(template_sel template_type, unsigned int list_length); DIAMETERCreateCallback_template& list_item(unsigned int list_index) const; void log() const; void log_match(const DIAMETERCreateCallback& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; }; class DIAMETERUnitdataCallback : public Base_Type { public: typedef DIAMETER__Types::PDU__DIAMETER_template (*function_pointer)(const DIAMETER__Types::PDU__DIAMETER& msg); typedef void (*start_pointer)(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg); private: friend class DIAMETERUnitdataCallback_template; friend boolean operator==(DIAMETERUnitdataCallback::function_pointer value, const DIAMETERUnitdataCallback& other_value); function_pointer referred_function; public: DIAMETERUnitdataCallback(); DIAMETERUnitdataCallback(function_pointer other_value); DIAMETERUnitdataCallback(const DIAMETERUnitdataCallback& other_value); DIAMETERUnitdataCallback& operator=(function_pointer other_value); DIAMETERUnitdataCallback& operator=(const DIAMETERUnitdataCallback& other_value); boolean operator==(function_pointer other_value) const; boolean operator==(const DIAMETERUnitdataCallback& other_value) const; inline boolean operator!=(function_pointer other_value) const { return !(*this == other_value); } inline boolean operator!=(const DIAMETERUnitdataCallback& other_value) const { return !(*this == other_value); } DIAMETER__Types::PDU__DIAMETER_template invoke(const DIAMETER__Types::PDU__DIAMETER& msg) const; void start(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg) const; inline boolean is_bound() const { return referred_function != NULL; } inline boolean is_value() const { return referred_function != NULL; } inline void clean_up() { referred_function = NULL; } inline void must_bound(const char *err_msg) const { if (referred_function == NULL) TTCN_error("%s", err_msg); } inline boolean is_present() const { return is_bound(); } void log() const; void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; extern boolean operator==(DIAMETERUnitdataCallback::function_pointer value, const DIAMETERUnitdataCallback& other_value); inline boolean operator!=(DIAMETERUnitdataCallback::function_pointer value, const DIAMETERUnitdataCallback& other_value) { return !(value == other_value); } class DIAMETERUnitdataCallback_template : public Base_Template { union { DIAMETERUnitdataCallback::function_pointer single_value; struct { unsigned int n_values; DIAMETERUnitdataCallback_template *list_value; } value_list; }; void copy_template(const DIAMETERUnitdataCallback_template& other_value); public: DIAMETERUnitdataCallback_template(); DIAMETERUnitdataCallback_template(template_sel other_value); DIAMETERUnitdataCallback_template(DIAMETERUnitdataCallback::function_pointer other_value); DIAMETERUnitdataCallback_template(const DIAMETERUnitdataCallback& other_value); DIAMETERUnitdataCallback_template(const OPTIONAL& other_value); DIAMETERUnitdataCallback_template(const DIAMETERUnitdataCallback_template& other_value); ~DIAMETERUnitdataCallback_template(); void clean_up(); DIAMETERUnitdataCallback_template& operator=(template_sel other_value); DIAMETERUnitdataCallback_template& operator=(DIAMETERUnitdataCallback::function_pointer other_value); DIAMETERUnitdataCallback_template& operator=(const DIAMETERUnitdataCallback& other_value); DIAMETERUnitdataCallback_template& operator=(const OPTIONAL& other_value); DIAMETERUnitdataCallback_template& operator=(const DIAMETERUnitdataCallback_template& other_value); boolean match(DIAMETERUnitdataCallback::function_pointer other_value, boolean legacy = FALSE) const; boolean match(const DIAMETERUnitdataCallback& other_value, boolean legacy = FALSE) const; DIAMETERUnitdataCallback valueof() const; void set_type(template_sel template_type, unsigned int list_length); DIAMETERUnitdataCallback_template& list_item(unsigned int list_index) const; void log() const; void log_match(const DIAMETERUnitdataCallback& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; }; class DIAMETEROps { DIAMETERCreateCallback field_create__cb; DIAMETERUnitdataCallback field_unitdata__cb; BOOLEAN field_raw; public: DIAMETEROps(); DIAMETEROps(const DIAMETERCreateCallback& par_create__cb, const DIAMETERUnitdataCallback& par_unitdata__cb, const BOOLEAN& par_raw); DIAMETEROps(const DIAMETEROps& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; DIAMETEROps& operator=(const DIAMETEROps& other_value); boolean operator==(const DIAMETEROps& other_value) const; inline boolean operator!=(const DIAMETEROps& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline DIAMETERCreateCallback& create__cb() {return field_create__cb;} inline const DIAMETERCreateCallback& create__cb() const {return field_create__cb;} inline DIAMETERUnitdataCallback& unitdata__cb() {return field_unitdata__cb;} inline const DIAMETERUnitdataCallback& unitdata__cb() const {return field_unitdata__cb;} inline BOOLEAN& raw() {return field_raw;} inline const BOOLEAN& raw() const {return field_raw;} inline int size_of() const {return 3;} void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class DIAMETEROps_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; DIAMETEROps_template *list_value; } value_list; struct { DIAMETEROps_template* precondition; DIAMETEROps_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const DIAMETEROps& other_value); void copy_template(const DIAMETEROps_template& other_value); public: DIAMETEROps_template(); DIAMETEROps_template(template_sel other_value); DIAMETEROps_template(const DIAMETEROps& other_value); DIAMETEROps_template(const OPTIONAL& other_value); DIAMETEROps_template(DIAMETEROps_template* p_precondition, DIAMETEROps_template* p_implied_template); DIAMETEROps_template(Dynamic_Match_Interface* p_dyn_match); DIAMETEROps_template(const DIAMETEROps_template& other_value); ~DIAMETEROps_template(); DIAMETEROps_template& operator=(template_sel other_value); DIAMETEROps_template& operator=(const DIAMETEROps& other_value); DIAMETEROps_template& operator=(const OPTIONAL& other_value); DIAMETEROps_template& operator=(const DIAMETEROps_template& other_value); boolean match(const DIAMETEROps& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); DIAMETEROps valueof() const; void set_type(template_sel template_type, unsigned int list_length); DIAMETEROps_template& list_item(unsigned int list_index) const; DIAMETERCreateCallback_template& create__cb(); const DIAMETERCreateCallback_template& create__cb() const; DIAMETERUnitdataCallback_template& unitdata__cb(); const DIAMETERUnitdataCallback_template& unitdata__cb() const; BOOLEAN_template& raw(); const BOOLEAN_template& raw() const; int size_of() const; void log() const; void log_match(const DIAMETEROps& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class DIAMETER__conn__parameters { CHARSTRING field_remote__ip; INTEGER field_remote__sctp__port; CHARSTRING field_local__ip; INTEGER field_local__sctp__port; CHARSTRING field_origin__host; CHARSTRING field_origin__realm; OPTIONAL< INTEGER > field_auth__app__id; OPTIONAL< INTEGER > field_vendor__app__id; public: DIAMETER__conn__parameters(); DIAMETER__conn__parameters(const CHARSTRING& par_remote__ip, const INTEGER& par_remote__sctp__port, const CHARSTRING& par_local__ip, const INTEGER& par_local__sctp__port, const CHARSTRING& par_origin__host, const CHARSTRING& par_origin__realm, const OPTIONAL< INTEGER >& par_auth__app__id, const OPTIONAL< INTEGER >& par_vendor__app__id); DIAMETER__conn__parameters(const DIAMETER__conn__parameters& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; DIAMETER__conn__parameters& operator=(const DIAMETER__conn__parameters& other_value); boolean operator==(const DIAMETER__conn__parameters& other_value) const; inline boolean operator!=(const DIAMETER__conn__parameters& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline CHARSTRING& remote__ip() {return field_remote__ip;} inline const CHARSTRING& remote__ip() const {return field_remote__ip;} inline INTEGER& remote__sctp__port() {return field_remote__sctp__port;} inline const INTEGER& remote__sctp__port() const {return field_remote__sctp__port;} inline CHARSTRING& local__ip() {return field_local__ip;} inline const CHARSTRING& local__ip() const {return field_local__ip;} inline INTEGER& local__sctp__port() {return field_local__sctp__port;} inline const INTEGER& local__sctp__port() const {return field_local__sctp__port;} inline CHARSTRING& origin__host() {return field_origin__host;} inline const CHARSTRING& origin__host() const {return field_origin__host;} inline CHARSTRING& origin__realm() {return field_origin__realm;} inline const CHARSTRING& origin__realm() const {return field_origin__realm;} inline OPTIONAL< INTEGER >& auth__app__id() {return field_auth__app__id;} inline const OPTIONAL< INTEGER >& auth__app__id() const {return field_auth__app__id;} inline OPTIONAL< INTEGER >& vendor__app__id() {return field_vendor__app__id;} inline const OPTIONAL< INTEGER >& vendor__app__id() const {return field_vendor__app__id;} int size_of() const; void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class DIAMETER__conn__parameters_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; DIAMETER__conn__parameters_template *list_value; } value_list; struct { DIAMETER__conn__parameters_template* precondition; DIAMETER__conn__parameters_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const DIAMETER__conn__parameters& other_value); void copy_template(const DIAMETER__conn__parameters_template& other_value); public: DIAMETER__conn__parameters_template(); DIAMETER__conn__parameters_template(template_sel other_value); DIAMETER__conn__parameters_template(const DIAMETER__conn__parameters& other_value); DIAMETER__conn__parameters_template(const OPTIONAL& other_value); DIAMETER__conn__parameters_template(DIAMETER__conn__parameters_template* p_precondition, DIAMETER__conn__parameters_template* p_implied_template); DIAMETER__conn__parameters_template(Dynamic_Match_Interface* p_dyn_match); DIAMETER__conn__parameters_template(const DIAMETER__conn__parameters_template& other_value); ~DIAMETER__conn__parameters_template(); DIAMETER__conn__parameters_template& operator=(template_sel other_value); DIAMETER__conn__parameters_template& operator=(const DIAMETER__conn__parameters& other_value); DIAMETER__conn__parameters_template& operator=(const OPTIONAL& other_value); DIAMETER__conn__parameters_template& operator=(const DIAMETER__conn__parameters_template& other_value); boolean match(const DIAMETER__conn__parameters& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); DIAMETER__conn__parameters valueof() const; void set_type(template_sel template_type, unsigned int list_length); DIAMETER__conn__parameters_template& list_item(unsigned int list_index) const; CHARSTRING_template& remote__ip(); const CHARSTRING_template& remote__ip() const; INTEGER_template& remote__sctp__port(); const INTEGER_template& remote__sctp__port() const; CHARSTRING_template& local__ip(); const CHARSTRING_template& local__ip() const; INTEGER_template& local__sctp__port(); const INTEGER_template& local__sctp__port() const; CHARSTRING_template& origin__host(); const CHARSTRING_template& origin__host() const; CHARSTRING_template& origin__realm(); const CHARSTRING_template& origin__realm() const; INTEGER_template& auth__app__id(); const INTEGER_template& auth__app__id() const; INTEGER_template& vendor__app__id(); const INTEGER_template& vendor__app__id() const; int size_of() const; void log() const; void log_match(const DIAMETER__conn__parameters& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class ExpectDataE2EID { OPTIONAL< OCTETSTRING > field_ete__id; COMPONENT field_vc__conn; public: ExpectDataE2EID(); ExpectDataE2EID(const OPTIONAL< OCTETSTRING >& par_ete__id, const COMPONENT& par_vc__conn); ExpectDataE2EID(const ExpectDataE2EID& other_value); inline boolean is_component() { return FALSE; } void clean_up(); const TTCN_Typedescriptor_t* get_descriptor() const; ExpectDataE2EID& operator=(const ExpectDataE2EID& other_value); boolean operator==(const ExpectDataE2EID& other_value) const; inline boolean operator!=(const ExpectDataE2EID& other_value) const { return !(*this == other_value); } boolean is_bound() const; inline boolean is_present() const { return is_bound(); } boolean is_value() const; inline OPTIONAL< OCTETSTRING >& ete__id() {return field_ete__id;} inline const OPTIONAL< OCTETSTRING >& ete__id() const {return field_ete__id;} inline COMPONENT& vc__conn() {return field_vc__conn;} inline const COMPONENT& vc__conn() const {return field_vc__conn;} int size_of() const; void log() const; void set_implicit_omit(); void set_param(Module_Param& param); void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class ExpectDataE2EID_template : public Base_Template { struct single_value_struct; union { single_value_struct *single_value; struct { unsigned int n_values; ExpectDataE2EID_template *list_value; } value_list; struct { ExpectDataE2EID_template* precondition; ExpectDataE2EID_template* implied_template; } implication_; dynmatch_struct* dyn_match; }; void set_specific(); void copy_value(const ExpectDataE2EID& other_value); void copy_template(const ExpectDataE2EID_template& other_value); public: ExpectDataE2EID_template(); ExpectDataE2EID_template(template_sel other_value); ExpectDataE2EID_template(const ExpectDataE2EID& other_value); ExpectDataE2EID_template(const OPTIONAL& other_value); ExpectDataE2EID_template(ExpectDataE2EID_template* p_precondition, ExpectDataE2EID_template* p_implied_template); ExpectDataE2EID_template(Dynamic_Match_Interface* p_dyn_match); ExpectDataE2EID_template(const ExpectDataE2EID_template& other_value); ~ExpectDataE2EID_template(); ExpectDataE2EID_template& operator=(template_sel other_value); ExpectDataE2EID_template& operator=(const ExpectDataE2EID& other_value); ExpectDataE2EID_template& operator=(const OPTIONAL& other_value); ExpectDataE2EID_template& operator=(const ExpectDataE2EID_template& other_value); boolean match(const ExpectDataE2EID& other_value, boolean legacy = FALSE) const; boolean is_bound() const; boolean is_value() const; void clean_up(); ExpectDataE2EID valueof() const; void set_type(template_sel template_type, unsigned int list_length); ExpectDataE2EID_template& list_item(unsigned int list_index) const; OCTETSTRING_template& ete__id(); const OCTETSTRING_template& ete__id() const; COMPONENT_template& vc__conn(); const COMPONENT_template& vc__conn() const; int size_of() const; void log() const; void log_match(const ExpectDataE2EID& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void set_param(Module_Param& param); void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; boolean is_present(boolean legacy = FALSE) const; boolean match_omit(boolean legacy = FALSE) const; }; class DIAMETEREM__register__eteid_call { OCTETSTRING param_ete__id; COMPONENT param_hdlr; public: inline OCTETSTRING& ete__id() { return param_ete__id; } inline const OCTETSTRING& ete__id() const { return param_ete__id; } inline COMPONENT& hdlr() { return param_hdlr; } inline const COMPONENT& hdlr() const { return param_hdlr; } void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void log() const; }; class DIAMETEREM__register__eteid_call_redirect { OCTETSTRING *ptr_ete__id; COMPONENT *ptr_hdlr; public: DIAMETEREM__register__eteid_call_redirect(OCTETSTRING *par_ete__id = NULL, COMPONENT *par_hdlr = NULL) : ptr_ete__id(par_ete__id), ptr_hdlr(par_hdlr) { } virtual ~DIAMETEREM__register__eteid_call_redirect() { } virtual void set_parameters(const DIAMETEREM__register__eteid_call& call_par) const; }; class DIAMETEREM__register__eteid_reply { public: inline void encode_text(Text_Buf&) const { } inline void decode_text(Text_Buf&) { } void log() const; }; class DIAMETEREM__register__eteid_reply_redirect { public: inline void set_parameters(const DIAMETEREM__register__eteid_reply&) const {} }; class DIAMETEREM__register__eteid_template { OCTETSTRING_template param_ete__id; COMPONENT_template param_hdlr; public: DIAMETEREM__register__eteid_template(); inline OCTETSTRING_template& ete__id() { return param_ete__id; } inline const OCTETSTRING_template& ete__id() const { return param_ete__id; } inline COMPONENT_template& hdlr() { return param_hdlr; } inline const COMPONENT_template& hdlr() const { return param_hdlr; } DIAMETEREM__register__eteid_call create_call() const; inline DIAMETEREM__register__eteid_reply create_reply() const { return DIAMETEREM__register__eteid_reply(); } boolean match_call(const DIAMETEREM__register__eteid_call& match_value, boolean legacy = FALSE) const; inline boolean match_reply(const DIAMETEREM__register__eteid_reply&, boolean legacy = FALSE) const { return TRUE; } void log() const; void log_match_call(const DIAMETEREM__register__eteid_call& match_value, boolean legacy = FALSE) const; void log_match_reply(const DIAMETEREM__register__eteid_reply& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class DIAMETEREM__register__imsi_call { HEXSTRING param_imsi; COMPONENT param_hdlr; public: inline HEXSTRING& imsi() { return param_imsi; } inline const HEXSTRING& imsi() const { return param_imsi; } inline COMPONENT& hdlr() { return param_hdlr; } inline const COMPONENT& hdlr() const { return param_hdlr; } void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); void log() const; }; class DIAMETEREM__register__imsi_call_redirect { HEXSTRING *ptr_imsi; COMPONENT *ptr_hdlr; public: DIAMETEREM__register__imsi_call_redirect(HEXSTRING *par_imsi = NULL, COMPONENT *par_hdlr = NULL) : ptr_imsi(par_imsi), ptr_hdlr(par_hdlr) { } virtual ~DIAMETEREM__register__imsi_call_redirect() { } virtual void set_parameters(const DIAMETEREM__register__imsi_call& call_par) const; }; class DIAMETEREM__register__imsi_reply { public: inline void encode_text(Text_Buf&) const { } inline void decode_text(Text_Buf&) { } void log() const; }; class DIAMETEREM__register__imsi_reply_redirect { public: inline void set_parameters(const DIAMETEREM__register__imsi_reply&) const {} }; class DIAMETEREM__register__imsi_template { HEXSTRING_template param_imsi; COMPONENT_template param_hdlr; public: DIAMETEREM__register__imsi_template(); inline HEXSTRING_template& imsi() { return param_imsi; } inline const HEXSTRING_template& imsi() const { return param_imsi; } inline COMPONENT_template& hdlr() { return param_hdlr; } inline const COMPONENT_template& hdlr() const { return param_hdlr; } DIAMETEREM__register__imsi_call create_call() const; inline DIAMETEREM__register__imsi_reply create_reply() const { return DIAMETEREM__register__imsi_reply(); } boolean match_call(const DIAMETEREM__register__imsi_call& match_value, boolean legacy = FALSE) const; inline boolean match_reply(const DIAMETEREM__register__imsi_reply&, boolean legacy = FALSE) const { return TRUE; } void log() const; void log_match_call(const DIAMETEREM__register__imsi_call& match_value, boolean legacy = FALSE) const; void log_match_reply(const DIAMETEREM__register__imsi_reply& match_value, boolean legacy = FALSE) const; void encode_text(Text_Buf& text_buf) const; void decode_text(Text_Buf& text_buf); }; class DIAMETEREM__PROC__PT : public PORT { enum proc_selection { CALL_0, CALL_1, REPLY_0, REPLY_1 }; struct proc_queue_item { proc_selection item_selection; union { DIAMETEREM__register__imsi_call *call_0; DIAMETEREM__register__eteid_call *call_1; DIAMETEREM__register__imsi_reply *reply_0; DIAMETEREM__register__eteid_reply *reply_1; }; component sender_component; proc_queue_item *next_item; } *proc_queue_head, *proc_queue_tail; void append_to_proc_queue(proc_queue_item *new_item); void remove_proc_queue_head(); protected: void clear_queue(); public: DIAMETEREM__PROC__PT(const char *par_port_name = NULL); ~DIAMETEREM__PROC__PT(); void call(const DIAMETEREM__register__imsi_template& call_template, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void call(const DIAMETEREM__register__imsi_template& call_template, FLOAT* timestamp_redirect = NULL); void call(const DIAMETEREM__register__eteid_template& call_template, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void call(const DIAMETEREM__register__eteid_template& call_template, FLOAT* timestamp_redirect = NULL); void reply(const DIAMETEREM__register__imsi_template& reply_template, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void reply(const DIAMETEREM__register__imsi_template& reply_template, FLOAT* timestamp_redirect = NULL); void reply(const DIAMETEREM__register__eteid_template& reply_template, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); void reply(const DIAMETEREM__register__eteid_template& reply_template, FLOAT* timestamp_redirect = NULL); public: alt_status getcall(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getcall(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status getcall(const DIAMETEREM__register__imsi_template& getcall_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__imsi_call_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getcall(const DIAMETEREM__register__imsi_template& getcall_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__imsi_call_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status getcall(const DIAMETEREM__register__eteid_template& getcall_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__eteid_call_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getcall(const DIAMETEREM__register__eteid_template& getcall_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__eteid_call_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status getreply(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getreply(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status getreply(const DIAMETEREM__register__imsi_template& getreply_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__imsi_reply_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getreply(const DIAMETEREM__register__imsi_template& getreply_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__imsi_reply_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status getreply(const DIAMETEREM__register__eteid_template& getreply_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__eteid_reply_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); alt_status check_getreply(const DIAMETEREM__register__eteid_template& getreply_template, const COMPONENT_template& sender_template, const DIAMETEREM__register__eteid_reply_redirect& param_ref, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); private: void incoming_call(const DIAMETEREM__register__imsi_call& incoming_par, component sender_component); void incoming_call(const DIAMETEREM__register__eteid_call& incoming_par, component sender_component); void incoming_reply(const DIAMETEREM__register__imsi_reply& incoming_par, component sender_component); void incoming_reply(const DIAMETEREM__register__eteid_reply& incoming_par, component sender_component); protected: boolean process_call(const char *signature_name, Text_Buf& incoming_buf, component sender_component); boolean process_reply(const char *signature_name, Text_Buf& incoming_buf, component sender_component); }; /* Function prototypes */ extern DIAMETER__CodecPort::DIAMETER__RecvFrom_template tr__DIAMETER__RecvFrom__R(const DIAMETER__Types::PDU__DIAMETER_template& msg); extern void start_tr__DIAMETER__RecvFrom__R(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER_template& msg); extern BOOLEAN f__imsi__known(const HEXSTRING& imsi); extern void start_f__imsi__known(const COMPONENT& component_reference, const HEXSTRING& imsi); extern BOOLEAN f__comp__known(const COMPONENT& client); extern void start_f__comp__known(const COMPONENT& component_reference, const COMPONENT& client); extern COMPONENT f__comp__by__imsi(const HEXSTRING& imsi); extern void start_f__comp__by__imsi(const COMPONENT& component_reference, const HEXSTRING& imsi); extern HEXSTRING f__imsi__by__comp(const COMPONENT& client); extern void start_f__imsi__by__comp(const COMPONENT& component_reference, const COMPONENT& client); extern void f__imsi__table__add(const COMPONENT& comp__ref, const HEXSTRING& imsi); extern void start_f__imsi__table__add(const COMPONENT& component_reference, const COMPONENT& comp__ref, const HEXSTRING& imsi); extern void f__imsi__table__del(const COMPONENT& comp__ref, const HEXSTRING& imsi); extern void start_f__imsi__table__del(const COMPONENT& component_reference, const COMPONENT& comp__ref, const HEXSTRING& imsi); extern void f__imsi__table__init(); extern void start_f__imsi__table__init(const COMPONENT& component_reference); extern BOOLEAN f__ete__id__known(const OCTETSTRING& ete__id); extern void start_f__ete__id__known(const COMPONENT& component_reference, const OCTETSTRING& ete__id); extern COMPONENT f__comp__by__ete__id(const OCTETSTRING& ete__id); extern void start_f__comp__by__ete__id(const COMPONENT& component_reference, const OCTETSTRING& ete__id); extern void f__eteid__table__add(const COMPONENT& comp__ref, const OCTETSTRING& ete__id); extern void start_f__eteid__table__add(const COMPONENT& component_reference, const COMPONENT& comp__ref, const OCTETSTRING& ete__id); extern void f__eteid__table__del(const COMPONENT& comp__ref, const OCTETSTRING& ete__id); extern void start_f__eteid__table__del(const COMPONENT& component_reference, const COMPONENT& comp__ref, const OCTETSTRING& ete__id); extern void f__eteid__table__init(); extern void start_f__eteid__table__init(const COMPONENT& component_reference); extern HEXSTRING_template f__DIAMETER__get__imsi(const DIAMETER__Types::PDU__DIAMETER& pdu); extern DIAMETER__Types::PDU__DIAMETER f__diameter__xceive(const DIAMETER__Types::PDU__DIAMETER_template& tx, const DIAMETER__Types::PDU__DIAMETER_template& rx__t); extern void start_f__diameter__xceive(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER_template& tx, const DIAMETER__Types::PDU__DIAMETER_template& rx__t); extern void main_(const DIAMETEROps& ops, const DIAMETER__conn__parameters& p, const CHARSTRING& id); extern void start_main_(const COMPONENT& component_reference, const DIAMETEROps& ops, const DIAMETER__conn__parameters& p, const CHARSTRING& id); extern void f__diameter__expect__eteid(const OCTETSTRING& ete__id); extern void start_f__diameter__expect__eteid(const COMPONENT& component_reference, const OCTETSTRING& ete__id); extern COMPONENT ExpectedCreateCallback(const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& ); extern void start_ExpectedCreateCallback(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg, const HEXSTRING& imsi, const CHARSTRING& id); extern void f__create__expect(const HEXSTRING& imsi, const COMPONENT& hdlr); extern void start_f__create__expect(const COMPONENT& component_reference, const HEXSTRING& imsi, const COMPONENT& hdlr); extern void f__diameter__expect__imsi(const HEXSTRING& imsi); extern void start_f__diameter__expect__imsi(const COMPONENT& component_reference, const HEXSTRING& imsi); extern void f__expect__table__init(); extern void start_f__expect__table__init(const COMPONENT& component_reference); extern DIAMETER__Types::PDU__DIAMETER_template DummyUnitdataCallback(const DIAMETER__Types::PDU__DIAMETER& msg); extern void start_DummyUnitdataCallback(const COMPONENT& component_reference, const DIAMETER__Types::PDU__DIAMETER& msg); extern void f__diameter__wait__capability(DIAMETER__PT& pt); extern void pre_init_module(); extern void post_init_module(); extern boolean init_comp_type(const char *component_type, boolean init_base_comps); extern boolean init_system_port(const char* component_type, const char* port_name); extern boolean start_ptc_function(const char *function_name, Text_Buf& function_arguments); /* Global variable declarations */ extern const XERdescriptor_t IMSI_xer_; extern const TTCN_Typedescriptor_t IMSI_descr_; extern UNIVERSAL_CHARSTRING DiameterCapabilityExchgInd_rx_default_coding; extern UNIVERSAL_CHARSTRING DiameterCapabilityExchgInd_tx_default_coding; extern const TTCN_Typedescriptor_t DiameterCapabilityExchgInd_descr_; extern const TTCN_Typedescriptor_t& DIAMETER__ConnHdlr_descr_; extern DIAMETER__Conn__PT DIAMETER__ConnHdlr_component_DIAMETER; extern DIAMETEREM__PROC__PT DIAMETER__ConnHdlr_component_DIAMETER__PROC; extern const TTCN_Typedescriptor_t AssociationData_descr_; extern const XERdescriptor_t AssociationData_imsi_xer_; extern const TTCN_Typedescriptor_t AssociationData_imsi_descr_; extern const TTCN_Typedescriptor_t ETEIDData_descr_; extern const XERdescriptor_t ETEIDData_ete__id_xer_; extern const TTCN_OERdescriptor_t ETEIDData_ete__id_oer_; extern const TTCN_Typedescriptor_t ETEIDData_ete__id_descr_; extern UNIVERSAL_CHARSTRING ETEIDData_ete__id_default_coding; extern const TTCN_Typedescriptor_t& DIAMETER__Emulation__CT_descr_; extern DIAMETER__CodecPort::DIAMETER__CODEC__PT DIAMETER__Emulation__CT_component_DIAMETER; extern DIAMETER__Conn__PT DIAMETER__Emulation__CT_component_DIAMETER__CLIENT; extern VALUE_ARRAY DIAMETER__Emulation__CT_component_DiameterAssocTable; extern VALUE_ARRAY DIAMETER__Emulation__CT_component_DiameterETEIDTable; extern const TTCN_Typedescriptor_t ExpectData_descr_; extern const XERdescriptor_t ExpectData_imsi_xer_; extern const TTCN_Typedescriptor_t ExpectData_imsi_descr_; extern VALUE_ARRAY DIAMETER__Emulation__CT_component_DiameterExpectTable; extern DIAMETEREM__PROC__PT DIAMETER__Emulation__CT_component_DIAMETER__PROC; extern DIAMETER__PT DIAMETER__Emulation__CT_component_DIAMETER__UNIT; extern CHARSTRING DIAMETER__Emulation__CT_component_g__diameter__id; extern INTEGER DIAMETER__Emulation__CT_component_g__diameter__conn__id; extern const TTCN_Typedescriptor_t DIAMETERCreateCallback_descr_; extern const TTCN_Typedescriptor_t DIAMETERUnitdataCallback_descr_; extern const XERdescriptor_t DIAMETEROps_raw_xer_; extern const TTCN_OERdescriptor_t DIAMETEROps_raw_oer_; extern const TTCN_Typedescriptor_t DIAMETEROps_raw_descr_; extern const TTCN_Typedescriptor_t DIAMETEROps_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_remote__ip_xer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_remote__ip_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_remote__sctp__port_xer_; extern const TTCN_OERdescriptor_t DIAMETER__conn__parameters_remote__sctp__port_oer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_remote__sctp__port_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_local__ip_xer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_local__ip_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_local__sctp__port_xer_; extern const TTCN_OERdescriptor_t DIAMETER__conn__parameters_local__sctp__port_oer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_local__sctp__port_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_origin__host_xer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_origin__host_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_origin__realm_xer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_origin__realm_descr_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_descr_; extern const XERdescriptor_t DIAMETER__conn__parameters_auth__app__id_xer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_auth__app__id_descr_; extern UNIVERSAL_CHARSTRING DIAMETER__conn__parameters_auth__app__id_default_coding; extern const XERdescriptor_t DIAMETER__conn__parameters_vendor__app__id_xer_; extern const TTCN_OERdescriptor_t DIAMETER__conn__parameters_vendor__app__id_oer_; extern const TTCN_Typedescriptor_t DIAMETER__conn__parameters_vendor__app__id_descr_; extern UNIVERSAL_CHARSTRING DIAMETER__conn__parameters_vendor__app__id_default_coding; extern const DIAMETER__Types::PDU__DIAMETER_template& f__diameter__xceive_rx__t_defval; extern DIAMETER__Types::PDU__DIAMETER_template template_f__diameter__xceive_rx__t_defval; extern const TTCN_Typedescriptor_t ExpectDataE2EID_descr_; extern const XERdescriptor_t ExpectDataE2EID_ete__id_xer_; extern const TTCN_OERdescriptor_t ExpectDataE2EID_ete__id_oer_; extern const TTCN_Typedescriptor_t ExpectDataE2EID_ete__id_descr_; extern UNIVERSAL_CHARSTRING ExpectDataE2EID_ete__id_default_coding; extern const OCTETSTRING os_0; extern const CHARSTRING cs_1, cs_0; extern const unsigned char module_checksum[]; extern TTCN_Module module_object; extern const RuntimeVersionChecker ver_checker; } /* end of namespace */ #endif