// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 11.1.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2025 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef IPA__Testing_HH
#define IPA__Testing_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 <TTCN3.hh>
#include "IPL4asp_PortType.hh"
#include "IPA_Types.hh"

#if TTCN3_VERSION != 110100
#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 IPA__Testing_HH
#endif

namespace IPA__Testing {

/* Forward declarations of classes */

class IPA__ConnectionMode;
class IPA__ConnectionMode_template;

} /* end of namespace */

#ifndef IPA__Testing_HH
#define IPA__Testing_HH

namespace IPA__Testing {

/* Type definitions */

typedef COMPONENT system__CT;
typedef COMPONENT_template system__CT_template;
typedef COMPONENT IPA__CT;
typedef COMPONENT_template IPA__CT_template;

/* Class definitions */

class IPA__ConnectionMode : public Base_Type { // enum
friend class IPA__ConnectionMode_template;
public:
enum enum_type { CONNECT__TO__SERVER = 0, LISTEN__FOR__CLIENT = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 };
private:
enum_type enum_value;

public:
IPA__ConnectionMode();
IPA__ConnectionMode(int other_value);
IPA__ConnectionMode(enum_type other_value);
IPA__ConnectionMode(const IPA__ConnectionMode& other_value);

IPA__ConnectionMode& operator=(int other_value);
IPA__ConnectionMode& operator=(enum_type other_value);
IPA__ConnectionMode& operator=(const IPA__ConnectionMode& other_value);

boolean operator==(int other_value) const;
boolean operator==(enum_type other_value) const;
boolean operator==(const IPA__ConnectionMode& other_value) const;
inline boolean operator!=(int other_value) const { return !(*this == other_value); }
inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const IPA__ConnectionMode& other_value) const { return !(*this == other_value); }
boolean operator<(int other_value) const;
boolean operator<(enum_type other_value) const;
boolean operator<(const IPA__ConnectionMode& other_value) const;
boolean operator>(int other_value) const;
boolean operator>(enum_type other_value) const;
boolean operator>(const IPA__ConnectionMode& other_value) const;
inline boolean operator<=(int other_value) const { return !(*this > other_value); }
inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
inline boolean operator<=(const IPA__ConnectionMode& other_value) const { return !(*this > other_value); }
inline boolean operator>=(int other_value) const { return !(*this < other_value); }
inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
inline boolean operator>=(const IPA__ConnectionMode& other_value) const { return !(*this < other_value); }

static const char *enum_to_str(enum_type enum_par);
static enum_type str_to_enum(const char *str_par, const int* int_par = NULL, const int* int_par2 = NULL);
static boolean is_valid_enum(int int_par);

static int enum2int(enum_type enum_par);
static int enum2int(const IPA__ConnectionMode& enum_par);
int as_int() const { return enum2int(enum_value); }
void from_int(int p_val) { *this = p_val; }
void int2enum(int int_val);
operator enum_type() const;
inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; }
inline boolean is_value() const { return enum_value != UNBOUND_VALUE; }
inline void clean_up(){ enum_value = UNBOUND_VALUE; }
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);
};

class IPA__ConnectionMode_template : public Base_Template {
union {
IPA__ConnectionMode::enum_type single_value;
struct {
unsigned int n_values;
IPA__ConnectionMode_template *list_value;
} value_list;
struct {
IPA__ConnectionMode_template* precondition;
IPA__ConnectionMode_template* implied_template;
} implication_;
dynmatch_struct<IPA__ConnectionMode>* dyn_match;
};

void copy_template(const IPA__ConnectionMode_template& other_value);

public:
IPA__ConnectionMode_template();
IPA__ConnectionMode_template(template_sel other_value);
IPA__ConnectionMode_template(int other_value);
IPA__ConnectionMode_template(IPA__ConnectionMode::enum_type other_value);
IPA__ConnectionMode_template(const IPA__ConnectionMode& other_value);
IPA__ConnectionMode_template(const OPTIONAL<IPA__ConnectionMode>& other_value);
IPA__ConnectionMode_template(IPA__ConnectionMode_template* p_precondition, IPA__ConnectionMode_template* p_implied_template);
IPA__ConnectionMode_template(Dynamic_Match_Interface<IPA__ConnectionMode>* p_dyn_match);
IPA__ConnectionMode_template(const IPA__ConnectionMode_template& other_value);
~IPA__ConnectionMode_template();

boolean is_bound() const;
boolean is_value() const;
void clean_up();
IPA__ConnectionMode_template& operator=(template_sel other_value);
IPA__ConnectionMode_template& operator=(int other_value);
IPA__ConnectionMode_template& operator=(IPA__ConnectionMode::enum_type other_value);
IPA__ConnectionMode_template& operator=(const IPA__ConnectionMode& other_value);
IPA__ConnectionMode_template& operator=(const OPTIONAL<IPA__ConnectionMode>& other_value);
IPA__ConnectionMode_template& operator=(const IPA__ConnectionMode_template& other_value);

boolean match(IPA__ConnectionMode::enum_type other_value, boolean legacy = FALSE) const;
boolean match(const IPA__ConnectionMode& other_value, boolean legacy = FALSE) const;
IPA__ConnectionMode::enum_type valueof() const;
void set_type(template_sel template_type, unsigned int list_length = 0);
IPA__ConnectionMode_template& list_item(unsigned int list_index);
void log() const;
void log_match(const IPA__ConnectionMode& 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 as__Tguard_Default : public Default_Base {
public:
as__Tguard_Default();
alt_status call_altstep(boolean first_alt_run);
};


/* Function prototypes */

extern alt_status as__Tguard_instance(boolean first_alt_run);
extern void as__Tguard(boolean nodefault_modifier);
extern Default_Base *activate_as__Tguard();
extern void f__send__ipa__data(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const INTEGER& connId, const OCTETSTRING& data);
extern void start_f__send__ipa__data(const COMPONENT& component_reference, const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const INTEGER& connId, const OCTETSTRING& data);
extern IPL4asp__Types::ASP__RecvFrom_template t__recvfrom(const OCTETSTRING_template& msg);
extern INTEGER f__init(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void start_f__init(const COMPONENT& component_reference, const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void f__send__chopped__ipa__msg(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const INTEGER& connId, const OCTETSTRING& msg);
extern void start_f__send__chopped__ipa__msg(const COMPONENT& component_reference, const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const INTEGER& connId, const OCTETSTRING& msg);
extern void f__TC__chopped__ipa__ping(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void start_f__TC__chopped__ipa__ping(const COMPONENT& component_reference, const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void f__TC__chopped__ipa__payload(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void start_f__TC__chopped__ipa__payload(const COMPONENT& component_reference, const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void f__run__TC__chopped__ipa__ping(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
extern void f__run__TC__chopped__ipa__payload(const CHARSTRING& ipa__ip, const INTEGER& ipa__tcp__port, const IPA__ConnectionMode& conmode);
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 TTCN_Typedescriptor_t IPA__ConnectionMode_descr_;
extern const OCTETSTRING& ipa__msg__ping;
extern OCTETSTRING const_ipa__msg__ping;
extern const OCTETSTRING& ipa__msg__pong;
extern OCTETSTRING const_ipa__msg__pong;
extern const OCTETSTRING& ipa__msg__id__req__hdr;
extern OCTETSTRING const_ipa__msg__id__req__hdr;
extern const OCTETSTRING& ipa__msg__id__req__payload;
extern OCTETSTRING const_ipa__msg__id__req__payload;
extern const TTCN_Typedescriptor_t& system__CT_descr_;
extern IPL4asp__PortType::IPL4asp__PT system__CT_component_IPL4;
extern const TTCN_Typedescriptor_t& IPA__CT_descr_;
extern IPL4asp__PortType::IPL4asp__PT IPA__CT_component_IPL4;
extern TIMER IPA__CT_component_g__Tguard;
extern const OCTETSTRING os_0,
os_1,
os_2,
os_3,
os_5,
os_4;
extern const CHARSTRING cs_0;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
