// 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 BTS__Tests__SMSCB_HH
#define BTS__Tests__SMSCB_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 "BTS_Tests.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 BTS__Tests__SMSCB_HH
#endif

namespace BTS__Tests__SMSCB {

/* Forward declarations of classes */

class CbchTestMsgs;
class CbchTestMsgs_template;
class CbchTestMsg;
class CbchTestMsg_template;
class CbchBlocks;
class CbchBlocks_template;
class CbchBlock;
class CbchBlock_template;
class CbchTestParsChan;
class CbchTestParsChan_template;
class CbchTestPars;
class CbchTestPars_template;

} /* end of namespace */

#ifndef BTS__Tests__SMSCB_HH
#define BTS__Tests__SMSCB_HH

namespace BTS__Tests__SMSCB {

/* Class definitions */

class CbchTestMsgs : public Base_Type {
struct recordof_setof_struct {
int ref_count;
int n_elements;
CbchTestMsg **value_elements;
} *val_ptr;

static const CbchTestMsg UNBOUND_ELEM;
private:
friend boolean operator==(null_type null_value, const CbchTestMsgs& other_value);

public:
  typedef CbchTestMsg of_type;
CbchTestMsgs();
CbchTestMsgs(null_type other_value);
CbchTestMsgs(const CbchTestMsgs& other_value);
~CbchTestMsgs();

void clean_up();
CbchTestMsgs& operator=(null_type other_value);
CbchTestMsgs& operator=(const CbchTestMsgs& other_value);

boolean operator==(null_type other_value) const;
boolean operator==(const CbchTestMsgs& other_value) const;
inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const CbchTestMsgs& other_value) const { return !(*this == other_value); }

CbchTestMsg& operator[](int index_value);
CbchTestMsg& operator[](const INTEGER& index_value);
const CbchTestMsg& operator[](int index_value) const;
const CbchTestMsg& operator[](const INTEGER& index_value) const;

CbchTestMsgs operator<<=(int rotate_count) const;
CbchTestMsgs operator<<=(const INTEGER& rotate_count) const;
CbchTestMsgs operator>>=(int rotate_count) const;
CbchTestMsgs operator>>=(const INTEGER& rotate_count) const;

CbchTestMsgs operator+(const CbchTestMsgs& other_value) const;

CbchTestMsgs substr(int index, int returncount) const;

CbchTestMsgs replace(int index, int len, const CbchTestMsgs& repl) const;

CbchTestMsgs replace(int index, int len, const CbchTestMsgs_template& repl) const;

void set_size(int new_size);
inline boolean is_bound() const {return val_ptr != NULL; }
inline boolean is_present() const { return is_bound(); }
boolean is_value() const;
int size_of() const;
int n_elem() const { return size_of(); }
int lengthof() 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 CbchTestMsgs_template : public Base_Record_Of_Template {
union {
struct {
int n_elements;
CbchTestMsg_template **value_elements;
} single_value;
struct {
unsigned int n_values;
CbchTestMsgs_template *list_value;
} value_list;
struct {
CbchTestMsgs_template* precondition;
CbchTestMsgs_template* implied_template;
} implication_;
dynmatch_struct<CbchTestMsgs>* dyn_match;
};
void copy_value(const CbchTestMsgs& other_value);
void copy_template(const CbchTestMsgs_template& other_value);
static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);

public:
CbchTestMsgs_template();
CbchTestMsgs_template(template_sel other_value);
CbchTestMsgs_template(null_type other_value);
CbchTestMsgs_template(const CbchTestMsgs& other_value);
CbchTestMsgs_template(const OPTIONAL<CbchTestMsgs>& other_value);
CbchTestMsgs_template(CbchTestMsgs_template* p_precondition, CbchTestMsgs_template* p_implied_template);
CbchTestMsgs_template(Dynamic_Match_Interface<CbchTestMsgs>* p_dyn_match);
CbchTestMsgs_template(const CbchTestMsgs_template& other_value);
~CbchTestMsgs_template();

void clean_up();
CbchTestMsgs_template& operator=(template_sel other_value);
CbchTestMsgs_template& operator=(null_type other_value);
CbchTestMsgs_template& operator=(const CbchTestMsgs& other_value);
CbchTestMsgs_template& operator=(const OPTIONAL<CbchTestMsgs>& other_value);
CbchTestMsgs_template& operator=(const CbchTestMsgs_template& other_value);

CbchTestMsg_template& operator[](int index_value);
CbchTestMsg_template& operator[](const INTEGER& index_value);
const CbchTestMsg_template& operator[](int index_value) const;
const CbchTestMsg_template& operator[](const INTEGER& index_value) const;

void set_size(int new_size);
int n_elem() const;
int size_of(boolean is_size) const;
inline int size_of() const { return size_of(TRUE); }
inline int lengthof() const { return size_of(FALSE); }
boolean match(const CbchTestMsgs& other_value, boolean legacy = FALSE) const;
inline boolean is_bound() const 
  {return template_selection != UNINITIALIZED_TEMPLATE; }
boolean is_value() const;
CbchTestMsgs valueof() const;
CbchTestMsgs substr(int index, int returncount) const;

CbchTestMsgs replace(int index, int len, const CbchTestMsgs_template& repl) const;

CbchTestMsgs replace(int index, int len, const CbchTestMsgs& repl) const;

void set_type(template_sel template_type, unsigned int list_length);
CbchTestMsgs_template& list_item(unsigned int list_index);
void log() const;
void log_match(const CbchTestMsgs& 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_implicit_omit();
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean get_istemplate_kind(const char* type) const;
};

class CbchTestMsg {
  RSL__Types::RSL__CbCommand field_rsl__cb__cmd;
  INTEGER field_last__block;
  OCTETSTRING field_payload;
  OPTIONAL< CbchBlocks > field_blocks;
public:
  CbchTestMsg();
  CbchTestMsg(const RSL__Types::RSL__CbCommand& par_rsl__cb__cmd,
    const INTEGER& par_last__block,
    const OCTETSTRING& par_payload,
    const OPTIONAL< CbchBlocks >& par_blocks);
  CbchTestMsg(const CbchTestMsg& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CbchTestMsg& operator=(const CbchTestMsg& other_value);
  boolean operator==(const CbchTestMsg& other_value) const;
  inline boolean operator!=(const CbchTestMsg& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

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

  inline RSL__Types::RSL__CbCommand& rsl__cb__cmd()
    {return field_rsl__cb__cmd;}
  inline const RSL__Types::RSL__CbCommand& rsl__cb__cmd() const
    {return field_rsl__cb__cmd;}
  inline INTEGER& last__block()
    {return field_last__block;}
  inline const INTEGER& last__block() const
    {return field_last__block;}
  inline OCTETSTRING& payload()
    {return field_payload;}
  inline const OCTETSTRING& payload() const
    {return field_payload;}
  inline OPTIONAL< CbchBlocks >& blocks()
    {return field_blocks;}
  inline const OPTIONAL< CbchBlocks >& blocks() const
    {return field_blocks;}
  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 CbchTestMsg_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CbchTestMsg_template *list_value;
} value_list;
struct {
CbchTestMsg_template* precondition;
CbchTestMsg_template* implied_template;
} implication_;
dynmatch_struct<CbchTestMsg>* dyn_match;
};

void set_specific();
void copy_value(const CbchTestMsg& other_value);
void copy_template(const CbchTestMsg_template& other_value);

public:
CbchTestMsg_template();
CbchTestMsg_template(template_sel other_value);
CbchTestMsg_template(const CbchTestMsg& other_value);
CbchTestMsg_template(const OPTIONAL<CbchTestMsg>& other_value);
CbchTestMsg_template(CbchTestMsg_template* p_precondition, CbchTestMsg_template* p_implied_template);
CbchTestMsg_template(Dynamic_Match_Interface<CbchTestMsg>* p_dyn_match);
CbchTestMsg_template(const CbchTestMsg_template& other_value);
~CbchTestMsg_template();
CbchTestMsg_template& operator=(template_sel other_value);
CbchTestMsg_template& operator=(const CbchTestMsg& other_value);
CbchTestMsg_template& operator=(const OPTIONAL<CbchTestMsg>& other_value);
CbchTestMsg_template& operator=(const CbchTestMsg_template& other_value);
boolean match(const CbchTestMsg& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CbchTestMsg valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CbchTestMsg_template& list_item(unsigned int list_index) const;
RSL__Types::RSL__CbCommand_template& rsl__cb__cmd();
const RSL__Types::RSL__CbCommand_template& rsl__cb__cmd() const;
INTEGER_template& last__block();
const INTEGER_template& last__block() const;
OCTETSTRING_template& payload();
const OCTETSTRING_template& payload() const;
CbchBlocks_template& blocks();
const CbchBlocks_template& blocks() const;
int size_of() const;
void log() const;
void log_match(const CbchTestMsg& 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 CbchBlocks : public Base_Type {
struct recordof_setof_struct {
int ref_count;
int n_elements;
CbchBlock **value_elements;
} *val_ptr;

static const CbchBlock UNBOUND_ELEM;
private:
friend boolean operator==(null_type null_value, const CbchBlocks& other_value);

public:
  typedef CbchBlock of_type;
CbchBlocks();
CbchBlocks(null_type other_value);
CbchBlocks(const CbchBlocks& other_value);
~CbchBlocks();

void clean_up();
CbchBlocks& operator=(null_type other_value);
CbchBlocks& operator=(const CbchBlocks& other_value);

boolean operator==(null_type other_value) const;
boolean operator==(const CbchBlocks& other_value) const;
inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const CbchBlocks& other_value) const { return !(*this == other_value); }

CbchBlock& operator[](int index_value);
CbchBlock& operator[](const INTEGER& index_value);
const CbchBlock& operator[](int index_value) const;
const CbchBlock& operator[](const INTEGER& index_value) const;

CbchBlocks operator<<=(int rotate_count) const;
CbchBlocks operator<<=(const INTEGER& rotate_count) const;
CbchBlocks operator>>=(int rotate_count) const;
CbchBlocks operator>>=(const INTEGER& rotate_count) const;

CbchBlocks operator+(const CbchBlocks& other_value) const;

CbchBlocks substr(int index, int returncount) const;

CbchBlocks replace(int index, int len, const CbchBlocks& repl) const;

CbchBlocks replace(int index, int len, const CbchBlocks_template& repl) const;

void set_size(int new_size);
inline boolean is_bound() const {return val_ptr != NULL; }
inline boolean is_present() const { return is_bound(); }
boolean is_value() const;
int size_of() const;
int n_elem() const { return size_of(); }
int lengthof() 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 CbchBlocks_template : public Base_Record_Of_Template {
union {
struct {
int n_elements;
CbchBlock_template **value_elements;
} single_value;
struct {
unsigned int n_values;
CbchBlocks_template *list_value;
} value_list;
struct {
CbchBlocks_template* precondition;
CbchBlocks_template* implied_template;
} implication_;
dynmatch_struct<CbchBlocks>* dyn_match;
};
void copy_value(const CbchBlocks& other_value);
void copy_template(const CbchBlocks_template& other_value);
static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);

public:
CbchBlocks_template();
CbchBlocks_template(template_sel other_value);
CbchBlocks_template(null_type other_value);
CbchBlocks_template(const CbchBlocks& other_value);
CbchBlocks_template(const OPTIONAL<CbchBlocks>& other_value);
CbchBlocks_template(CbchBlocks_template* p_precondition, CbchBlocks_template* p_implied_template);
CbchBlocks_template(Dynamic_Match_Interface<CbchBlocks>* p_dyn_match);
CbchBlocks_template(const CbchBlocks_template& other_value);
~CbchBlocks_template();

void clean_up();
CbchBlocks_template& operator=(template_sel other_value);
CbchBlocks_template& operator=(null_type other_value);
CbchBlocks_template& operator=(const CbchBlocks& other_value);
CbchBlocks_template& operator=(const OPTIONAL<CbchBlocks>& other_value);
CbchBlocks_template& operator=(const CbchBlocks_template& other_value);

CbchBlock_template& operator[](int index_value);
CbchBlock_template& operator[](const INTEGER& index_value);
const CbchBlock_template& operator[](int index_value) const;
const CbchBlock_template& operator[](const INTEGER& index_value) const;

void set_size(int new_size);
int n_elem() const;
int size_of(boolean is_size) const;
inline int size_of() const { return size_of(TRUE); }
inline int lengthof() const { return size_of(FALSE); }
boolean match(const CbchBlocks& other_value, boolean legacy = FALSE) const;
inline boolean is_bound() const 
  {return template_selection != UNINITIALIZED_TEMPLATE; }
boolean is_value() const;
CbchBlocks valueof() const;
CbchBlocks substr(int index, int returncount) const;

CbchBlocks replace(int index, int len, const CbchBlocks_template& repl) const;

CbchBlocks replace(int index, int len, const CbchBlocks& repl) const;

void set_type(template_sel template_type, unsigned int list_length);
CbchBlocks_template& list_item(unsigned int list_index);
void log() const;
void log_match(const CbchBlocks& 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_implicit_omit();
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean get_istemplate_kind(const char* type) const;
};

class CbchBlock {
  INTEGER field_seq__nr;
  BOOLEAN field_is__last;
  OCTETSTRING field_payload;
  BOOLEAN field_seen__once;
public:
  CbchBlock();
  CbchBlock(const INTEGER& par_seq__nr,
    const BOOLEAN& par_is__last,
    const OCTETSTRING& par_payload,
    const BOOLEAN& par_seen__once);
  CbchBlock(const CbchBlock& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CbchBlock& operator=(const CbchBlock& other_value);
  boolean operator==(const CbchBlock& other_value) const;
  inline boolean operator!=(const CbchBlock& 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& seq__nr()
    {return field_seq__nr;}
  inline const INTEGER& seq__nr() const
    {return field_seq__nr;}
  inline BOOLEAN& is__last()
    {return field_is__last;}
  inline const BOOLEAN& is__last() const
    {return field_is__last;}
  inline OCTETSTRING& payload()
    {return field_payload;}
  inline const OCTETSTRING& payload() const
    {return field_payload;}
  inline BOOLEAN& seen__once()
    {return field_seen__once;}
  inline const BOOLEAN& seen__once() const
    {return field_seen__once;}
  inline int size_of() const
    {return 4;}
  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 CbchBlock_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CbchBlock_template *list_value;
} value_list;
struct {
CbchBlock_template* precondition;
CbchBlock_template* implied_template;
} implication_;
dynmatch_struct<CbchBlock>* dyn_match;
};

void set_specific();
void copy_value(const CbchBlock& other_value);
void copy_template(const CbchBlock_template& other_value);

public:
CbchBlock_template();
CbchBlock_template(template_sel other_value);
CbchBlock_template(const CbchBlock& other_value);
CbchBlock_template(const OPTIONAL<CbchBlock>& other_value);
CbchBlock_template(CbchBlock_template* p_precondition, CbchBlock_template* p_implied_template);
CbchBlock_template(Dynamic_Match_Interface<CbchBlock>* p_dyn_match);
CbchBlock_template(const CbchBlock_template& other_value);
~CbchBlock_template();
CbchBlock_template& operator=(template_sel other_value);
CbchBlock_template& operator=(const CbchBlock& other_value);
CbchBlock_template& operator=(const OPTIONAL<CbchBlock>& other_value);
CbchBlock_template& operator=(const CbchBlock_template& other_value);
boolean match(const CbchBlock& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CbchBlock valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CbchBlock_template& list_item(unsigned int list_index) const;
INTEGER_template& seq__nr();
const INTEGER_template& seq__nr() const;
BOOLEAN_template& is__last();
const BOOLEAN_template& is__last() const;
OCTETSTRING_template& payload();
const OCTETSTRING_template& payload() const;
BOOLEAN_template& seen__once();
const BOOLEAN_template& seen__once() const;
int size_of() const;
void log() const;
void log_match(const CbchBlock& 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 CbchTestParsChan {
  CbchTestMsgs field_msgs;
  OPTIONAL< CbchTestMsg > field_default__msg;
public:
  CbchTestParsChan();
  CbchTestParsChan(const CbchTestMsgs& par_msgs,
    const OPTIONAL< CbchTestMsg >& par_default__msg);
  CbchTestParsChan(const CbchTestParsChan& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CbchTestParsChan& operator=(const CbchTestParsChan& other_value);
  boolean operator==(const CbchTestParsChan& other_value) const;
  inline boolean operator!=(const CbchTestParsChan& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

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

  inline CbchTestMsgs& msgs()
    {return field_msgs;}
  inline const CbchTestMsgs& msgs() const
    {return field_msgs;}
  inline OPTIONAL< CbchTestMsg >& default__msg()
    {return field_default__msg;}
  inline const OPTIONAL< CbchTestMsg >& default__msg() const
    {return field_default__msg;}
  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 CbchTestParsChan_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CbchTestParsChan_template *list_value;
} value_list;
struct {
CbchTestParsChan_template* precondition;
CbchTestParsChan_template* implied_template;
} implication_;
dynmatch_struct<CbchTestParsChan>* dyn_match;
};

void set_specific();
void copy_value(const CbchTestParsChan& other_value);
void copy_template(const CbchTestParsChan_template& other_value);

public:
CbchTestParsChan_template();
CbchTestParsChan_template(template_sel other_value);
CbchTestParsChan_template(const CbchTestParsChan& other_value);
CbchTestParsChan_template(const OPTIONAL<CbchTestParsChan>& other_value);
CbchTestParsChan_template(CbchTestParsChan_template* p_precondition, CbchTestParsChan_template* p_implied_template);
CbchTestParsChan_template(Dynamic_Match_Interface<CbchTestParsChan>* p_dyn_match);
CbchTestParsChan_template(const CbchTestParsChan_template& other_value);
~CbchTestParsChan_template();
CbchTestParsChan_template& operator=(template_sel other_value);
CbchTestParsChan_template& operator=(const CbchTestParsChan& other_value);
CbchTestParsChan_template& operator=(const OPTIONAL<CbchTestParsChan>& other_value);
CbchTestParsChan_template& operator=(const CbchTestParsChan_template& other_value);
boolean match(const CbchTestParsChan& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CbchTestParsChan valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CbchTestParsChan_template& list_item(unsigned int list_index) const;
CbchTestMsgs_template& msgs();
const CbchTestMsgs_template& msgs() const;
CbchTestMsg_template& default__msg();
const CbchTestMsg_template& default__msg() const;
int size_of() const;
void log() const;
void log_match(const CbchTestParsChan& 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 CbchTestPars {
  GSM__Types::RslChannelNr field_chan__nr;
  BTS__Tests::FreqHopPars field_fhp;
  CbchTestParsChan field_basic;
  OPTIONAL< CbchTestParsChan > field_extended;
public:
  CbchTestPars();
  CbchTestPars(const GSM__Types::RslChannelNr& par_chan__nr,
    const BTS__Tests::FreqHopPars& par_fhp,
    const CbchTestParsChan& par_basic,
    const OPTIONAL< CbchTestParsChan >& par_extended);
  CbchTestPars(const CbchTestPars& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CbchTestPars& operator=(const CbchTestPars& other_value);
  boolean operator==(const CbchTestPars& other_value) const;
  inline boolean operator!=(const CbchTestPars& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

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

  inline GSM__Types::RslChannelNr& chan__nr()
    {return field_chan__nr;}
  inline const GSM__Types::RslChannelNr& chan__nr() const
    {return field_chan__nr;}
  inline BTS__Tests::FreqHopPars& fhp()
    {return field_fhp;}
  inline const BTS__Tests::FreqHopPars& fhp() const
    {return field_fhp;}
  inline CbchTestParsChan& basic()
    {return field_basic;}
  inline const CbchTestParsChan& basic() const
    {return field_basic;}
  inline OPTIONAL< CbchTestParsChan >& extended()
    {return field_extended;}
  inline const OPTIONAL< CbchTestParsChan >& extended() const
    {return field_extended;}
  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 CbchTestPars_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CbchTestPars_template *list_value;
} value_list;
struct {
CbchTestPars_template* precondition;
CbchTestPars_template* implied_template;
} implication_;
dynmatch_struct<CbchTestPars>* dyn_match;
};

void set_specific();
void copy_value(const CbchTestPars& other_value);
void copy_template(const CbchTestPars_template& other_value);

public:
CbchTestPars_template();
CbchTestPars_template(template_sel other_value);
CbchTestPars_template(const CbchTestPars& other_value);
CbchTestPars_template(const OPTIONAL<CbchTestPars>& other_value);
CbchTestPars_template(CbchTestPars_template* p_precondition, CbchTestPars_template* p_implied_template);
CbchTestPars_template(Dynamic_Match_Interface<CbchTestPars>* p_dyn_match);
CbchTestPars_template(const CbchTestPars_template& other_value);
~CbchTestPars_template();
CbchTestPars_template& operator=(template_sel other_value);
CbchTestPars_template& operator=(const CbchTestPars& other_value);
CbchTestPars_template& operator=(const OPTIONAL<CbchTestPars>& other_value);
CbchTestPars_template& operator=(const CbchTestPars_template& other_value);
boolean match(const CbchTestPars& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CbchTestPars valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CbchTestPars_template& list_item(unsigned int list_index) const;
GSM__Types::RslChannelNr_template& chan__nr();
const GSM__Types::RslChannelNr_template& chan__nr() const;
BTS__Tests::FreqHopPars_template& fhp();
const BTS__Tests::FreqHopPars_template& fhp() const;
CbchTestParsChan_template& basic();
const CbchTestParsChan_template& basic() const;
CbchTestParsChan_template& extended();
const CbchTestParsChan_template& extended() const;
int size_of() const;
void log() const;
void log_match(const CbchTestPars& 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 operator==(null_type null_value, const CbchTestMsgs& other_value);
inline boolean operator!=(null_type null_value, const CbchTestMsgs& other_value) { return !(null_value == other_value); }
extern boolean operator==(null_type null_value, const CbchBlocks& other_value);
inline boolean operator!=(null_type null_value, const CbchBlocks& other_value) { return !(null_value == other_value); }
extern CbchTestParsChan_template t__CbchPC(const CbchTestMsgs_template& msgs, const CbchTestMsg_template& def);
extern void f__cbch__compute__exp__blocks(CbchTestPars& pars);
extern void f__cbch__compute__exp__blocks__chan(CbchTestParsChan& pars__chan);
extern CbchBlocks f__comp__blocks(const CbchTestMsg& msg);
extern INTEGER f__cbch__block__nr2rsl(const INTEGER& nr);
extern INTEGER f__cbch__fn2tb(const INTEGER& fn);
extern void f__cbch__fn__verify(const INTEGER& fn, const GSM__Types::CBCH__Block& cb);
extern void f__rsl__smscb__default__null();
extern void start_f__rsl__smscb__default__null(const COMPONENT& component_reference);
extern void f__smscb__setup__rsl__chan(CbchTestParsChan& pars__chan, const BOOLEAN& extd);
extern void start_f__smscb__setup__rsl__chan(const COMPONENT& component_reference, CbchTestParsChan& pars__chan, const BOOLEAN& extd);
extern void f__vty__cbch__setup(const GSM__Types::RslChannelNr& chan__nr);
extern void start_f__vty__cbch__setup(const COMPONENT& component_reference, const GSM__Types::RslChannelNr& chan__nr);
extern void f__smscb__setup(CbchTestPars& pars);
extern void start_f__smscb__setup(const COMPONENT& component_reference, CbchTestPars& pars);
extern GSM__Types::CBCH__Block_template f__get__block__template(const CbchTestMsg& msg, const INTEGER& block__nr);
extern void f__cbch__match(CbchTestParsChan& pars__chan, const GSM__Types::CBCH__Block& cb, const INTEGER& tb);
extern void f__cbch__report(const CbchTestParsChan& pars__chan, const CHARSTRING& id);
extern void f__TC__smscb(const CbchTestPars& pars);
extern void start_f__TC__smscb(const COMPONENT& component_reference, const CbchTestPars& pars);
extern void f__TC__smscb__default__only(const CbchTestPars& pars);
extern void start_f__TC__smscb__default__only(const COMPONENT& component_reference, const CbchTestPars& pars);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__1block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__1block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__2block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__2block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__3block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__3block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__4block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__4block(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__multi(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__multi(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__extd__multi(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__extd__multi(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__schedule(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__schedule(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__default__only(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__default__only(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__default__and__normal(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch8__default__and__normal(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__sms__cb__cmd__sdcch4__default__then__null(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__cbch__load__idle__no__cbch(boolean has_timer, double timer_value);
extern void f__TC__cbc__load__idle();
extern void start_f__TC__cbc__load__idle(const COMPONENT& component_reference);
extern verdicttype testcase_TC__cbc__sdcch4__load__idle(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__cbc__sdcch8__load__idle(boolean has_timer, double timer_value);
extern void f__TC__cbc__load__overload(const CbchTestPars& pars);
extern void start_f__TC__cbc__load__overload(const COMPONENT& component_reference, const CbchTestPars& pars);
extern verdicttype testcase_TC__cbc__sdcch4__load__overload(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__cbc__sdcch8__load__overload(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__etws__p1ro(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__etws__p1ro__end(boolean has_timer, double timer_value);
extern verdicttype testcase_TC__etws__pcu(boolean has_timer, double timer_value);
extern void module_control_part();
extern void pre_init_module();
extern void post_init_module();
extern boolean start_ptc_function(const char *function_name, Text_Buf& function_arguments);

/* Global variable declarations */

extern const TTCN_Typedescriptor_t CbchTestMsgs_descr_;
extern UNIVERSAL_CHARSTRING CbchTestMsg_rsl__cb__cmd_default_coding;
extern const XERdescriptor_t CbchTestMsg_last__block_xer_;
extern const TTCN_Typedescriptor_t CbchTestMsg_last__block_descr_;
extern UNIVERSAL_CHARSTRING CbchTestMsg_last__block_default_coding;
extern const XERdescriptor_t CbchTestMsg_payload_xer_;
extern const TTCN_OERdescriptor_t CbchTestMsg_payload_oer_;
extern const TTCN_Typedescriptor_t CbchTestMsg_payload_descr_;
extern const TTCN_Typedescriptor_t CbchTestMsg_descr_;
extern const TTCN_Typedescriptor_t CbchBlocks_descr_;
extern const XERdescriptor_t CbchBlock_seq__nr_xer_;
extern const TTCN_OERdescriptor_t CbchBlock_seq__nr_oer_;
extern const TTCN_Typedescriptor_t CbchBlock_seq__nr_descr_;
extern UNIVERSAL_CHARSTRING CbchBlock_seq__nr_default_coding;
extern const XERdescriptor_t CbchBlock_is__last_xer_;
extern const TTCN_OERdescriptor_t CbchBlock_is__last_oer_;
extern const TTCN_Typedescriptor_t CbchBlock_is__last_descr_;
extern const XERdescriptor_t CbchBlock_payload_xer_;
extern const TTCN_OERdescriptor_t CbchBlock_payload_oer_;
extern const TTCN_Typedescriptor_t CbchBlock_payload_descr_;
extern UNIVERSAL_CHARSTRING CbchBlock_payload_default_coding;
extern const XERdescriptor_t CbchBlock_seen__once_xer_;
extern const TTCN_OERdescriptor_t CbchBlock_seen__once_oer_;
extern const TTCN_Typedescriptor_t CbchBlock_seen__once_descr_;
extern const TTCN_Typedescriptor_t CbchBlock_descr_;
extern const TTCN_Typedescriptor_t CbchTestParsChan_descr_;
extern const CbchTestMsg_template& t__CbchPC_def_defval;
extern CbchTestMsg_template template_t__CbchPC_def_defval;
extern UNIVERSAL_CHARSTRING CbchTestPars_chan__nr_default_coding;
extern const TTCN_Typedescriptor_t CbchTestPars_descr_;
extern const RSL__Types::RSL__IE_template& t__RSL__IE__SMSCB__EXT;
extern RSL__Types::RSL__IE_template template_t__RSL__IE__SMSCB__EXT;
extern const BOOLEAN& f__smscb__setup__rsl__chan_extd_defval;
extern BOOLEAN const_f__smscb__setup__rsl__chan_extd_defval;
extern const CbchTestMsgs& msgs__1m__1b__norm;
extern CbchTestMsgs const_msgs__1m__1b__norm;
extern const CbchTestMsgs& msgs__1m__2b__norm;
extern CbchTestMsgs const_msgs__1m__2b__norm;
extern const CbchTestMsgs& msgs__1m__3b__norm;
extern CbchTestMsgs const_msgs__1m__3b__norm;
extern const CbchTestMsgs& msgs__1m__4b__norm;
extern CbchTestMsgs const_msgs__1m__4b__norm;
extern const CbchTestMsgs& msgs__1m__4b__sched;
extern CbchTestMsgs const_msgs__1m__4b__sched;
extern const CbchTestMsgs& msgs__3m__4b__norm;
extern CbchTestMsgs const_msgs__3m__4b__norm;
extern const CbchTestMsgs& msgs__1m__3b__default;
extern CbchTestMsgs const_msgs__1m__3b__default;
extern const CbchTestMsg& msg__default;
extern CbchTestMsg const_msg__default;
extern const GSM__RR__Types::GsmRrMessage_template& tr__PagingType1;
extern GSM__RR__Types::GsmRrMessage_template template_tr__PagingType1;
extern const OCTETSTRING& c__etws__seg0;
extern OCTETSTRING const_c__etws__seg0;
extern const OCTETSTRING& c__etws__seg1;
extern OCTETSTRING const_c__etws__seg1;
extern const OCTETSTRING& c__etws__seg2;
extern OCTETSTRING const_c__etws__seg2;
extern const OCTETSTRING& c__etws__seg3;
extern OCTETSTRING const_c__etws__seg3;
extern const OCTETSTRING& c__etws;
extern OCTETSTRING const_c__etws;
extern const BITSTRING bs_0,
bs_1;
extern const OCTETSTRING os_0,
os_9,
os_13,
os_1,
os_2,
os_3,
os_5,
os_4,
os_6,
os_7,
os_8,
os_10,
os_11,
os_12;
extern const CHARSTRING cs_12,
cs_10,
cs_11,
cs_1,
cs_9,
cs_0,
cs_7,
cs_4,
cs_8,
cs_6,
cs_5,
cs_3,
cs_2;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
