// 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 AF__PACKET__PortTypes_HH
#define AF__PACKET__PortTypes_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>

#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 AF__PACKET__PortTypes_HH
#endif

namespace AF__PACKET__PortTypes {

/* Forward declarations of classes */

class AF__PACKET__Unitdata;
class AF__PACKET__Unitdata_template;

} /* end of namespace */

#ifndef AF__PACKET__PortTypes_HH
#define AF__PACKET__PortTypes_HH

namespace AF__PACKET__PortTypes {

/* Class definitions */

class AF__PACKET__Unitdata {
  OCTETSTRING field_data;
public:
  AF__PACKET__Unitdata();
  AF__PACKET__Unitdata(const OCTETSTRING& par_data);
  AF__PACKET__Unitdata(const AF__PACKET__Unitdata& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  AF__PACKET__Unitdata& operator=(const AF__PACKET__Unitdata& other_value);
  boolean operator==(const AF__PACKET__Unitdata& other_value) const;
  inline boolean operator!=(const AF__PACKET__Unitdata& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

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

  inline OCTETSTRING& data()
    {return field_data;}
  inline const OCTETSTRING& data() const
    {return field_data;}
  inline int size_of() const
    {return 1;}
  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 AF__PACKET__Unitdata_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
AF__PACKET__Unitdata_template *list_value;
} value_list;
struct {
AF__PACKET__Unitdata_template* precondition;
AF__PACKET__Unitdata_template* implied_template;
} implication_;
dynmatch_struct<AF__PACKET__Unitdata>* dyn_match;
};

void set_specific();
void copy_value(const AF__PACKET__Unitdata& other_value);
void copy_template(const AF__PACKET__Unitdata_template& other_value);

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


/* Global variable declarations */

extern const XERdescriptor_t AF__PACKET__Unitdata_data_xer_;
extern const TTCN_OERdescriptor_t AF__PACKET__Unitdata_data_oer_;
extern const TTCN_Typedescriptor_t AF__PACKET__Unitdata_data_descr_;
extern const TTCN_Typedescriptor_t AF__PACKET__Unitdata_descr_;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
