// 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 FrameRelay__Types_HH
#define FrameRelay__Types_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 "General_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 FrameRelay__Types_HH
#endif

namespace FrameRelay__Types {

/* Forward declarations of classes */

class FrameRelayHeader;
class FrameRelayHeader_template;
class FrameRelayFrame;
class FrameRelayFrame_template;

} /* end of namespace */

#ifndef FrameRelay__Types_HH
#define FrameRelay__Types_HH

namespace FrameRelay__Types {

/* Class definitions */

class FrameRelayHeader {
  INTEGER field_dlci;
  BOOLEAN field_c__r;
  BOOLEAN field_fecn;
  BOOLEAN field_becn;
  BOOLEAN field_de;
public:
  FrameRelayHeader();
  FrameRelayHeader(const INTEGER& par_dlci,
    const BOOLEAN& par_c__r,
    const BOOLEAN& par_fecn,
    const BOOLEAN& par_becn,
    const BOOLEAN& par_de);
  FrameRelayHeader(const FrameRelayHeader& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  FrameRelayHeader& operator=(const FrameRelayHeader& other_value);
  boolean operator==(const FrameRelayHeader& other_value) const;
  inline boolean operator!=(const FrameRelayHeader& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& dlci()
    {return field_dlci;}
  inline const INTEGER& dlci() const
    {return field_dlci;}
  inline BOOLEAN& c__r()
    {return field_c__r;}
  inline const BOOLEAN& c__r() const
    {return field_c__r;}
  inline BOOLEAN& fecn()
    {return field_fecn;}
  inline const BOOLEAN& fecn() const
    {return field_fecn;}
  inline BOOLEAN& becn()
    {return field_becn;}
  inline const BOOLEAN& becn() const
    {return field_becn;}
  inline BOOLEAN& de()
    {return field_de;}
  inline const BOOLEAN& de() const
    {return field_de;}
  inline int size_of() const
    {return 5;}
  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 FrameRelayHeader_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
FrameRelayHeader_template *list_value;
} value_list;
struct {
FrameRelayHeader_template* precondition;
FrameRelayHeader_template* implied_template;
} implication_;
dynmatch_struct<FrameRelayHeader>* dyn_match;
};

void set_specific();
void copy_value(const FrameRelayHeader& other_value);
void copy_template(const FrameRelayHeader_template& other_value);

public:
FrameRelayHeader_template();
FrameRelayHeader_template(template_sel other_value);
FrameRelayHeader_template(const FrameRelayHeader& other_value);
FrameRelayHeader_template(const OPTIONAL<FrameRelayHeader>& other_value);
FrameRelayHeader_template(FrameRelayHeader_template* p_precondition, FrameRelayHeader_template* p_implied_template);
FrameRelayHeader_template(Dynamic_Match_Interface<FrameRelayHeader>* p_dyn_match);
FrameRelayHeader_template(const FrameRelayHeader_template& other_value);
~FrameRelayHeader_template();
FrameRelayHeader_template& operator=(template_sel other_value);
FrameRelayHeader_template& operator=(const FrameRelayHeader& other_value);
FrameRelayHeader_template& operator=(const OPTIONAL<FrameRelayHeader>& other_value);
FrameRelayHeader_template& operator=(const FrameRelayHeader_template& other_value);
boolean match(const FrameRelayHeader& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
FrameRelayHeader valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
FrameRelayHeader_template& list_item(unsigned int list_index) const;
INTEGER_template& dlci();
const INTEGER_template& dlci() const;
BOOLEAN_template& c__r();
const BOOLEAN_template& c__r() const;
BOOLEAN_template& fecn();
const BOOLEAN_template& fecn() const;
BOOLEAN_template& becn();
const BOOLEAN_template& becn() const;
BOOLEAN_template& de();
const BOOLEAN_template& de() const;
int size_of() const;
void log() const;
void log_match(const FrameRelayHeader& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
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 FrameRelayFrame {
  FrameRelayHeader field_hdr;
  OCTETSTRING field_payload;
public:
  FrameRelayFrame();
  FrameRelayFrame(const FrameRelayHeader& par_hdr,
    const OCTETSTRING& par_payload);
  FrameRelayFrame(const FrameRelayFrame& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  FrameRelayFrame& operator=(const FrameRelayFrame& other_value);
  boolean operator==(const FrameRelayFrame& other_value) const;
  inline boolean operator!=(const FrameRelayFrame& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline FrameRelayHeader& hdr()
    {return field_hdr;}
  inline const FrameRelayHeader& hdr() const
    {return field_hdr;}
  inline OCTETSTRING& payload()
    {return field_payload;}
  inline const OCTETSTRING& payload() const
    {return field_payload;}
  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 FrameRelayFrame_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
FrameRelayFrame_template *list_value;
} value_list;
struct {
FrameRelayFrame_template* precondition;
FrameRelayFrame_template* implied_template;
} implication_;
dynmatch_struct<FrameRelayFrame>* dyn_match;
};

void set_specific();
void copy_value(const FrameRelayFrame& other_value);
void copy_template(const FrameRelayFrame_template& other_value);

public:
FrameRelayFrame_template();
FrameRelayFrame_template(template_sel other_value);
FrameRelayFrame_template(const FrameRelayFrame& other_value);
FrameRelayFrame_template(const OPTIONAL<FrameRelayFrame>& other_value);
FrameRelayFrame_template(FrameRelayFrame_template* p_precondition, FrameRelayFrame_template* p_implied_template);
FrameRelayFrame_template(Dynamic_Match_Interface<FrameRelayFrame>* p_dyn_match);
FrameRelayFrame_template(const FrameRelayFrame_template& other_value);
~FrameRelayFrame_template();
FrameRelayFrame_template& operator=(template_sel other_value);
FrameRelayFrame_template& operator=(const FrameRelayFrame& other_value);
FrameRelayFrame_template& operator=(const OPTIONAL<FrameRelayFrame>& other_value);
FrameRelayFrame_template& operator=(const FrameRelayFrame_template& other_value);
boolean match(const FrameRelayFrame& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
FrameRelayFrame valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
FrameRelayFrame_template& list_item(unsigned int list_index) const;
FrameRelayHeader_template& hdr();
const FrameRelayHeader_template& hdr() const;
OCTETSTRING_template& payload();
const OCTETSTRING_template& payload() const;
int size_of() const;
void log() const;
void log_match(const FrameRelayFrame& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
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;
};


/* Function prototypes */

extern BOOLEAN bit2bool(const BITSTRING& bit);
extern BITSTRING bool2bit(const BOOLEAN& pi);
extern FrameRelayHeader dec__FrameRelayFrameHeader(const OCTETSTRING& stream);
extern OCTETSTRING enc__FrameRelayFrameHeader(const FrameRelayHeader& frh);
extern FrameRelayFrame dec__FrameRelayFrame(const OCTETSTRING& stream);
extern OCTETSTRING enc__FrameRelayFrame(const FrameRelayFrame& si);
extern FrameRelayFrame_template ts__FR(const INTEGER& dlci, const OCTETSTRING& payload, const BOOLEAN& c__r, const BOOLEAN& fecn, const BOOLEAN& becn, const BOOLEAN& de);
extern FrameRelayFrame_template tr__FR(const INTEGER_template& dlci, const OCTETSTRING_template& payload, const BOOLEAN_template& c__r, const BOOLEAN_template& fecn, const BOOLEAN_template& becn, const BOOLEAN_template& de);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const XERdescriptor_t FrameRelayHeader_dlci_xer_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_dlci_descr_;
extern const XERdescriptor_t FrameRelayHeader_c__r_xer_;
extern const TTCN_OERdescriptor_t FrameRelayHeader_c__r_oer_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_c__r_descr_;
extern const XERdescriptor_t FrameRelayHeader_fecn_xer_;
extern const TTCN_OERdescriptor_t FrameRelayHeader_fecn_oer_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_fecn_descr_;
extern const XERdescriptor_t FrameRelayHeader_becn_xer_;
extern const TTCN_OERdescriptor_t FrameRelayHeader_becn_oer_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_becn_descr_;
extern const XERdescriptor_t FrameRelayHeader_de_xer_;
extern const TTCN_OERdescriptor_t FrameRelayHeader_de_oer_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_de_descr_;
extern const TTCN_Typedescriptor_t FrameRelayHeader_descr_;
extern const XERdescriptor_t FrameRelayFrame_payload_xer_;
extern const TTCN_OERdescriptor_t FrameRelayFrame_payload_oer_;
extern const TTCN_Typedescriptor_t FrameRelayFrame_payload_descr_;
extern const TTCN_Typedescriptor_t FrameRelayFrame_descr_;
extern const BOOLEAN& ts__FR_fecn_defval;
extern BOOLEAN const_ts__FR_fecn_defval;
extern const BOOLEAN& ts__FR_becn_defval;
extern BOOLEAN const_ts__FR_becn_defval;
extern const BOOLEAN& ts__FR_de_defval;
extern BOOLEAN const_ts__FR_de_defval;
extern const OCTETSTRING_template& tr__FR_payload_defval;
extern OCTETSTRING_template template_tr__FR_payload_defval;
extern const BOOLEAN_template& tr__FR_c__r_defval;
extern BOOLEAN_template template_tr__FR_c__r_defval;
extern const BOOLEAN_template& tr__FR_fecn_defval;
extern BOOLEAN_template template_tr__FR_fecn_defval;
extern const BOOLEAN_template& tr__FR_becn_defval;
extern BOOLEAN_template template_tr__FR_becn_defval;
extern const BOOLEAN_template& tr__FR_de_defval;
extern BOOLEAN_template template_tr__FR_de_defval;
extern const BITSTRING bs_1,
bs_0;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
