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

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

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

#ifndef SCTPasp__Types_HH
#define SCTPasp__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>

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

namespace SCTPasp__Types {

/* Forward declarations of classes */

class ASP__SCTP;
class ASP__SCTP_template;
class ASP__SCTP__Connect;
class ASP__SCTP__Connect_template;
class ASP__SCTP__ConnectFrom;
class ASP__SCTP__ConnectFrom_template;
class ASP__SCTP__Listen;
class ASP__SCTP__Listen_template;
class SCTP__INIT;
class SCTP__INIT_template;
class SCTP__EVENTS;
class SCTP__EVENTS_template;
class SO__LINGER;
class SO__LINGER_template;
class SCTP__RTOINFO;
class SCTP__RTOINFO_template;
class ASP__SCTP__SetSocketOptions;
class ASP__SCTP__SetSocketOptions_template;
class ASP__SCTP__Close;
class ASP__SCTP__Close_template;
class SAC__STATE;
class SAC__STATE_template;
class ASP__SCTP__ASSOC__CHANGE;
class ASP__SCTP__ASSOC__CHANGE_template;
class SPC__STATE;
class SPC__STATE_template;
class ASP__SCTP__PEER__ADDR__CHANGE;
class ASP__SCTP__PEER__ADDR__CHANGE_template;
class ASP__SCTP__SEND__FAILED;
class ASP__SCTP__SEND__FAILED_template;
class ASP__SCTP__REMOTE__ERROR;
class ASP__SCTP__REMOTE__ERROR_template;
class ASP__SCTP__SHUTDOWN__EVENT;
class ASP__SCTP__SHUTDOWN__EVENT_template;
class ASP__SCTP__PARTIAL__DELIVERY__EVENT;
class ASP__SCTP__PARTIAL__DELIVERY__EVENT_template;
class ASP__SCTP__ADAPTION__INDICATION;
class ASP__SCTP__ADAPTION__INDICATION_template;
class ASP__SCTP__Connected;
class ASP__SCTP__Connected_template;
class ASP__SCTP__SENDMSG__ERROR;
class ASP__SCTP__SENDMSG__ERROR_template;
class ASP__SCTP__RESULT;
class ASP__SCTP__RESULT_template;

} /* end of namespace */

#ifndef SCTPasp__Types_HH
#define SCTPasp__Types_HH

namespace SCTPasp__Types {

/* Type definitions */

typedef OCTETSTRING PDU__SCTP;
typedef OCTETSTRING_template PDU__SCTP_template;

/* Class definitions */

class ASP__SCTP {
  OPTIONAL< INTEGER > field_client__id;
  INTEGER field_sinfo__stream;
  INTEGER field_sinfo__ppid;
  OCTETSTRING field_data;
public:
  ASP__SCTP();
  ASP__SCTP(const OPTIONAL< INTEGER >& par_client__id,
    const INTEGER& par_sinfo__stream,
    const INTEGER& par_sinfo__ppid,
    const OCTETSTRING& par_data);
  ASP__SCTP(const ASP__SCTP& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP& operator=(const ASP__SCTP& other_value);
  boolean operator==(const ASP__SCTP& other_value) const;
  inline boolean operator!=(const ASP__SCTP& 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< INTEGER >& client__id()
    {return field_client__id;}
  inline const OPTIONAL< INTEGER >& client__id() const
    {return field_client__id;}
  inline INTEGER& sinfo__stream()
    {return field_sinfo__stream;}
  inline const INTEGER& sinfo__stream() const
    {return field_sinfo__stream;}
  inline INTEGER& sinfo__ppid()
    {return field_sinfo__ppid;}
  inline const INTEGER& sinfo__ppid() const
    {return field_sinfo__ppid;}
  inline OCTETSTRING& data()
    {return field_data;}
  inline const OCTETSTRING& data() const
    {return field_data;}
  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 ASP__SCTP_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP_template *list_value;
} value_list;
struct {
ASP__SCTP_template* precondition;
ASP__SCTP_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP& other_value);
void copy_template(const ASP__SCTP_template& other_value);

public:
ASP__SCTP_template();
ASP__SCTP_template(template_sel other_value);
ASP__SCTP_template(const ASP__SCTP& other_value);
ASP__SCTP_template(const OPTIONAL<ASP__SCTP>& other_value);
ASP__SCTP_template(ASP__SCTP_template* p_precondition, ASP__SCTP_template* p_implied_template);
ASP__SCTP_template(Dynamic_Match_Interface<ASP__SCTP>* p_dyn_match);
ASP__SCTP_template(const ASP__SCTP_template& other_value);
~ASP__SCTP_template();
ASP__SCTP_template& operator=(template_sel other_value);
ASP__SCTP_template& operator=(const ASP__SCTP& other_value);
ASP__SCTP_template& operator=(const OPTIONAL<ASP__SCTP>& other_value);
ASP__SCTP_template& operator=(const ASP__SCTP_template& other_value);
boolean match(const ASP__SCTP& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
INTEGER_template& sinfo__stream();
const INTEGER_template& sinfo__stream() const;
INTEGER_template& sinfo__ppid();
const INTEGER_template& sinfo__ppid() const;
OCTETSTRING_template& data();
const OCTETSTRING_template& data() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP& 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 ASP__SCTP__Connect {
  OPTIONAL< CHARSTRING > field_peer__hostname;
  OPTIONAL< INTEGER > field_peer__portnumber;
public:
  ASP__SCTP__Connect();
  ASP__SCTP__Connect(const OPTIONAL< CHARSTRING >& par_peer__hostname,
    const OPTIONAL< INTEGER >& par_peer__portnumber);
  ASP__SCTP__Connect(const ASP__SCTP__Connect& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__Connect& operator=(const ASP__SCTP__Connect& other_value);
  boolean operator==(const ASP__SCTP__Connect& other_value) const;
  inline boolean operator!=(const ASP__SCTP__Connect& 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< CHARSTRING >& peer__hostname()
    {return field_peer__hostname;}
  inline const OPTIONAL< CHARSTRING >& peer__hostname() const
    {return field_peer__hostname;}
  inline OPTIONAL< INTEGER >& peer__portnumber()
    {return field_peer__portnumber;}
  inline const OPTIONAL< INTEGER >& peer__portnumber() const
    {return field_peer__portnumber;}
  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 ASP__SCTP__Connect_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__Connect_template *list_value;
} value_list;
struct {
ASP__SCTP__Connect_template* precondition;
ASP__SCTP__Connect_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__Connect>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__Connect& other_value);
void copy_template(const ASP__SCTP__Connect_template& other_value);

public:
ASP__SCTP__Connect_template();
ASP__SCTP__Connect_template(template_sel other_value);
ASP__SCTP__Connect_template(const ASP__SCTP__Connect& other_value);
ASP__SCTP__Connect_template(const OPTIONAL<ASP__SCTP__Connect>& other_value);
ASP__SCTP__Connect_template(ASP__SCTP__Connect_template* p_precondition, ASP__SCTP__Connect_template* p_implied_template);
ASP__SCTP__Connect_template(Dynamic_Match_Interface<ASP__SCTP__Connect>* p_dyn_match);
ASP__SCTP__Connect_template(const ASP__SCTP__Connect_template& other_value);
~ASP__SCTP__Connect_template();
ASP__SCTP__Connect_template& operator=(template_sel other_value);
ASP__SCTP__Connect_template& operator=(const ASP__SCTP__Connect& other_value);
ASP__SCTP__Connect_template& operator=(const OPTIONAL<ASP__SCTP__Connect>& other_value);
ASP__SCTP__Connect_template& operator=(const ASP__SCTP__Connect_template& other_value);
boolean match(const ASP__SCTP__Connect& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__Connect valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__Connect_template& list_item(unsigned int list_index) const;
CHARSTRING_template& peer__hostname();
const CHARSTRING_template& peer__hostname() const;
INTEGER_template& peer__portnumber();
const INTEGER_template& peer__portnumber() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__Connect& 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 ASP__SCTP__ConnectFrom {
  OPTIONAL< CHARSTRING > field_local__hostname;
  INTEGER field_local__portnumber;
  OPTIONAL< CHARSTRING > field_peer__hostname;
  OPTIONAL< INTEGER > field_peer__portnumber;
public:
  ASP__SCTP__ConnectFrom();
  ASP__SCTP__ConnectFrom(const OPTIONAL< CHARSTRING >& par_local__hostname,
    const INTEGER& par_local__portnumber,
    const OPTIONAL< CHARSTRING >& par_peer__hostname,
    const OPTIONAL< INTEGER >& par_peer__portnumber);
  ASP__SCTP__ConnectFrom(const ASP__SCTP__ConnectFrom& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__ConnectFrom& operator=(const ASP__SCTP__ConnectFrom& other_value);
  boolean operator==(const ASP__SCTP__ConnectFrom& other_value) const;
  inline boolean operator!=(const ASP__SCTP__ConnectFrom& 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< CHARSTRING >& local__hostname()
    {return field_local__hostname;}
  inline const OPTIONAL< CHARSTRING >& local__hostname() const
    {return field_local__hostname;}
  inline INTEGER& local__portnumber()
    {return field_local__portnumber;}
  inline const INTEGER& local__portnumber() const
    {return field_local__portnumber;}
  inline OPTIONAL< CHARSTRING >& peer__hostname()
    {return field_peer__hostname;}
  inline const OPTIONAL< CHARSTRING >& peer__hostname() const
    {return field_peer__hostname;}
  inline OPTIONAL< INTEGER >& peer__portnumber()
    {return field_peer__portnumber;}
  inline const OPTIONAL< INTEGER >& peer__portnumber() const
    {return field_peer__portnumber;}
  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 ASP__SCTP__ConnectFrom_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__ConnectFrom_template *list_value;
} value_list;
struct {
ASP__SCTP__ConnectFrom_template* precondition;
ASP__SCTP__ConnectFrom_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__ConnectFrom>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__ConnectFrom& other_value);
void copy_template(const ASP__SCTP__ConnectFrom_template& other_value);

public:
ASP__SCTP__ConnectFrom_template();
ASP__SCTP__ConnectFrom_template(template_sel other_value);
ASP__SCTP__ConnectFrom_template(const ASP__SCTP__ConnectFrom& other_value);
ASP__SCTP__ConnectFrom_template(const OPTIONAL<ASP__SCTP__ConnectFrom>& other_value);
ASP__SCTP__ConnectFrom_template(ASP__SCTP__ConnectFrom_template* p_precondition, ASP__SCTP__ConnectFrom_template* p_implied_template);
ASP__SCTP__ConnectFrom_template(Dynamic_Match_Interface<ASP__SCTP__ConnectFrom>* p_dyn_match);
ASP__SCTP__ConnectFrom_template(const ASP__SCTP__ConnectFrom_template& other_value);
~ASP__SCTP__ConnectFrom_template();
ASP__SCTP__ConnectFrom_template& operator=(template_sel other_value);
ASP__SCTP__ConnectFrom_template& operator=(const ASP__SCTP__ConnectFrom& other_value);
ASP__SCTP__ConnectFrom_template& operator=(const OPTIONAL<ASP__SCTP__ConnectFrom>& other_value);
ASP__SCTP__ConnectFrom_template& operator=(const ASP__SCTP__ConnectFrom_template& other_value);
boolean match(const ASP__SCTP__ConnectFrom& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__ConnectFrom valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__ConnectFrom_template& list_item(unsigned int list_index) const;
CHARSTRING_template& local__hostname();
const CHARSTRING_template& local__hostname() const;
INTEGER_template& local__portnumber();
const INTEGER_template& local__portnumber() const;
CHARSTRING_template& peer__hostname();
const CHARSTRING_template& peer__hostname() const;
INTEGER_template& peer__portnumber();
const INTEGER_template& peer__portnumber() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__ConnectFrom& 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 ASP__SCTP__Listen {
  OPTIONAL< CHARSTRING > field_local__hostname;
  INTEGER field_local__portnumber;
public:
  ASP__SCTP__Listen();
  ASP__SCTP__Listen(const OPTIONAL< CHARSTRING >& par_local__hostname,
    const INTEGER& par_local__portnumber);
  ASP__SCTP__Listen(const ASP__SCTP__Listen& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__Listen& operator=(const ASP__SCTP__Listen& other_value);
  boolean operator==(const ASP__SCTP__Listen& other_value) const;
  inline boolean operator!=(const ASP__SCTP__Listen& 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< CHARSTRING >& local__hostname()
    {return field_local__hostname;}
  inline const OPTIONAL< CHARSTRING >& local__hostname() const
    {return field_local__hostname;}
  inline INTEGER& local__portnumber()
    {return field_local__portnumber;}
  inline const INTEGER& local__portnumber() const
    {return field_local__portnumber;}
  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 ASP__SCTP__Listen_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__Listen_template *list_value;
} value_list;
struct {
ASP__SCTP__Listen_template* precondition;
ASP__SCTP__Listen_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__Listen>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__Listen& other_value);
void copy_template(const ASP__SCTP__Listen_template& other_value);

public:
ASP__SCTP__Listen_template();
ASP__SCTP__Listen_template(template_sel other_value);
ASP__SCTP__Listen_template(const ASP__SCTP__Listen& other_value);
ASP__SCTP__Listen_template(const OPTIONAL<ASP__SCTP__Listen>& other_value);
ASP__SCTP__Listen_template(ASP__SCTP__Listen_template* p_precondition, ASP__SCTP__Listen_template* p_implied_template);
ASP__SCTP__Listen_template(Dynamic_Match_Interface<ASP__SCTP__Listen>* p_dyn_match);
ASP__SCTP__Listen_template(const ASP__SCTP__Listen_template& other_value);
~ASP__SCTP__Listen_template();
ASP__SCTP__Listen_template& operator=(template_sel other_value);
ASP__SCTP__Listen_template& operator=(const ASP__SCTP__Listen& other_value);
ASP__SCTP__Listen_template& operator=(const OPTIONAL<ASP__SCTP__Listen>& other_value);
ASP__SCTP__Listen_template& operator=(const ASP__SCTP__Listen_template& other_value);
boolean match(const ASP__SCTP__Listen& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__Listen valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__Listen_template& list_item(unsigned int list_index) const;
CHARSTRING_template& local__hostname();
const CHARSTRING_template& local__hostname() const;
INTEGER_template& local__portnumber();
const INTEGER_template& local__portnumber() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__Listen& 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 SCTP__INIT {
  INTEGER field_sinit__num__ostreams;
  INTEGER field_sinit__max__instreams;
  INTEGER field_sinit__max__attempts;
  INTEGER field_sinit__max__init__timeo;
public:
  SCTP__INIT();
  SCTP__INIT(const INTEGER& par_sinit__num__ostreams,
    const INTEGER& par_sinit__max__instreams,
    const INTEGER& par_sinit__max__attempts,
    const INTEGER& par_sinit__max__init__timeo);
  SCTP__INIT(const SCTP__INIT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SCTP__INIT& operator=(const SCTP__INIT& other_value);
  boolean operator==(const SCTP__INIT& other_value) const;
  inline boolean operator!=(const SCTP__INIT& 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& sinit__num__ostreams()
    {return field_sinit__num__ostreams;}
  inline const INTEGER& sinit__num__ostreams() const
    {return field_sinit__num__ostreams;}
  inline INTEGER& sinit__max__instreams()
    {return field_sinit__max__instreams;}
  inline const INTEGER& sinit__max__instreams() const
    {return field_sinit__max__instreams;}
  inline INTEGER& sinit__max__attempts()
    {return field_sinit__max__attempts;}
  inline const INTEGER& sinit__max__attempts() const
    {return field_sinit__max__attempts;}
  inline INTEGER& sinit__max__init__timeo()
    {return field_sinit__max__init__timeo;}
  inline const INTEGER& sinit__max__init__timeo() const
    {return field_sinit__max__init__timeo;}
  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 SCTP__INIT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SCTP__INIT_template *list_value;
} value_list;
struct {
SCTP__INIT_template* precondition;
SCTP__INIT_template* implied_template;
} implication_;
dynmatch_struct<SCTP__INIT>* dyn_match;
};

void set_specific();
void copy_value(const SCTP__INIT& other_value);
void copy_template(const SCTP__INIT_template& other_value);

public:
SCTP__INIT_template();
SCTP__INIT_template(template_sel other_value);
SCTP__INIT_template(const SCTP__INIT& other_value);
SCTP__INIT_template(const OPTIONAL<SCTP__INIT>& other_value);
SCTP__INIT_template(SCTP__INIT_template* p_precondition, SCTP__INIT_template* p_implied_template);
SCTP__INIT_template(Dynamic_Match_Interface<SCTP__INIT>* p_dyn_match);
SCTP__INIT_template(const SCTP__INIT_template& other_value);
~SCTP__INIT_template();
SCTP__INIT_template& operator=(template_sel other_value);
SCTP__INIT_template& operator=(const SCTP__INIT& other_value);
SCTP__INIT_template& operator=(const OPTIONAL<SCTP__INIT>& other_value);
SCTP__INIT_template& operator=(const SCTP__INIT_template& other_value);
boolean match(const SCTP__INIT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SCTP__INIT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SCTP__INIT_template& list_item(unsigned int list_index) const;
INTEGER_template& sinit__num__ostreams();
const INTEGER_template& sinit__num__ostreams() const;
INTEGER_template& sinit__max__instreams();
const INTEGER_template& sinit__max__instreams() const;
INTEGER_template& sinit__max__attempts();
const INTEGER_template& sinit__max__attempts() const;
INTEGER_template& sinit__max__init__timeo();
const INTEGER_template& sinit__max__init__timeo() const;
int size_of() const;
void log() const;
void log_match(const SCTP__INIT& 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 SCTP__EVENTS {
  BOOLEAN field_sctp__data__io__event;
  BOOLEAN field_sctp__association__event;
  BOOLEAN field_sctp__address__event;
  BOOLEAN field_sctp__send__failure__event;
  BOOLEAN field_sctp__peer__error__event;
  BOOLEAN field_sctp__shutdown__event;
  BOOLEAN field_sctp__partial__delivery__event;
  BOOLEAN field_sctp__adaption__layer__event;
public:
  SCTP__EVENTS();
  SCTP__EVENTS(const BOOLEAN& par_sctp__data__io__event,
    const BOOLEAN& par_sctp__association__event,
    const BOOLEAN& par_sctp__address__event,
    const BOOLEAN& par_sctp__send__failure__event,
    const BOOLEAN& par_sctp__peer__error__event,
    const BOOLEAN& par_sctp__shutdown__event,
    const BOOLEAN& par_sctp__partial__delivery__event,
    const BOOLEAN& par_sctp__adaption__layer__event);
  SCTP__EVENTS(const SCTP__EVENTS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SCTP__EVENTS& operator=(const SCTP__EVENTS& other_value);
  boolean operator==(const SCTP__EVENTS& other_value) const;
  inline boolean operator!=(const SCTP__EVENTS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

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

  inline BOOLEAN& sctp__data__io__event()
    {return field_sctp__data__io__event;}
  inline const BOOLEAN& sctp__data__io__event() const
    {return field_sctp__data__io__event;}
  inline BOOLEAN& sctp__association__event()
    {return field_sctp__association__event;}
  inline const BOOLEAN& sctp__association__event() const
    {return field_sctp__association__event;}
  inline BOOLEAN& sctp__address__event()
    {return field_sctp__address__event;}
  inline const BOOLEAN& sctp__address__event() const
    {return field_sctp__address__event;}
  inline BOOLEAN& sctp__send__failure__event()
    {return field_sctp__send__failure__event;}
  inline const BOOLEAN& sctp__send__failure__event() const
    {return field_sctp__send__failure__event;}
  inline BOOLEAN& sctp__peer__error__event()
    {return field_sctp__peer__error__event;}
  inline const BOOLEAN& sctp__peer__error__event() const
    {return field_sctp__peer__error__event;}
  inline BOOLEAN& sctp__shutdown__event()
    {return field_sctp__shutdown__event;}
  inline const BOOLEAN& sctp__shutdown__event() const
    {return field_sctp__shutdown__event;}
  inline BOOLEAN& sctp__partial__delivery__event()
    {return field_sctp__partial__delivery__event;}
  inline const BOOLEAN& sctp__partial__delivery__event() const
    {return field_sctp__partial__delivery__event;}
  inline BOOLEAN& sctp__adaption__layer__event()
    {return field_sctp__adaption__layer__event;}
  inline const BOOLEAN& sctp__adaption__layer__event() const
    {return field_sctp__adaption__layer__event;}
  inline int size_of() const
    {return 8;}
  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 SCTP__EVENTS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SCTP__EVENTS_template *list_value;
} value_list;
struct {
SCTP__EVENTS_template* precondition;
SCTP__EVENTS_template* implied_template;
} implication_;
dynmatch_struct<SCTP__EVENTS>* dyn_match;
};

void set_specific();
void copy_value(const SCTP__EVENTS& other_value);
void copy_template(const SCTP__EVENTS_template& other_value);

public:
SCTP__EVENTS_template();
SCTP__EVENTS_template(template_sel other_value);
SCTP__EVENTS_template(const SCTP__EVENTS& other_value);
SCTP__EVENTS_template(const OPTIONAL<SCTP__EVENTS>& other_value);
SCTP__EVENTS_template(SCTP__EVENTS_template* p_precondition, SCTP__EVENTS_template* p_implied_template);
SCTP__EVENTS_template(Dynamic_Match_Interface<SCTP__EVENTS>* p_dyn_match);
SCTP__EVENTS_template(const SCTP__EVENTS_template& other_value);
~SCTP__EVENTS_template();
SCTP__EVENTS_template& operator=(template_sel other_value);
SCTP__EVENTS_template& operator=(const SCTP__EVENTS& other_value);
SCTP__EVENTS_template& operator=(const OPTIONAL<SCTP__EVENTS>& other_value);
SCTP__EVENTS_template& operator=(const SCTP__EVENTS_template& other_value);
boolean match(const SCTP__EVENTS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SCTP__EVENTS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SCTP__EVENTS_template& list_item(unsigned int list_index) const;
BOOLEAN_template& sctp__data__io__event();
const BOOLEAN_template& sctp__data__io__event() const;
BOOLEAN_template& sctp__association__event();
const BOOLEAN_template& sctp__association__event() const;
BOOLEAN_template& sctp__address__event();
const BOOLEAN_template& sctp__address__event() const;
BOOLEAN_template& sctp__send__failure__event();
const BOOLEAN_template& sctp__send__failure__event() const;
BOOLEAN_template& sctp__peer__error__event();
const BOOLEAN_template& sctp__peer__error__event() const;
BOOLEAN_template& sctp__shutdown__event();
const BOOLEAN_template& sctp__shutdown__event() const;
BOOLEAN_template& sctp__partial__delivery__event();
const BOOLEAN_template& sctp__partial__delivery__event() const;
BOOLEAN_template& sctp__adaption__layer__event();
const BOOLEAN_template& sctp__adaption__layer__event() const;
int size_of() const;
void log() const;
void log_match(const SCTP__EVENTS& 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 SO__LINGER {
  INTEGER field_l__onoff;
  INTEGER field_l__linger;
public:
  SO__LINGER();
  SO__LINGER(const INTEGER& par_l__onoff,
    const INTEGER& par_l__linger);
  SO__LINGER(const SO__LINGER& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SO__LINGER& operator=(const SO__LINGER& other_value);
  boolean operator==(const SO__LINGER& other_value) const;
  inline boolean operator!=(const SO__LINGER& 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& l__onoff()
    {return field_l__onoff;}
  inline const INTEGER& l__onoff() const
    {return field_l__onoff;}
  inline INTEGER& l__linger()
    {return field_l__linger;}
  inline const INTEGER& l__linger() const
    {return field_l__linger;}
  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 SO__LINGER_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SO__LINGER_template *list_value;
} value_list;
struct {
SO__LINGER_template* precondition;
SO__LINGER_template* implied_template;
} implication_;
dynmatch_struct<SO__LINGER>* dyn_match;
};

void set_specific();
void copy_value(const SO__LINGER& other_value);
void copy_template(const SO__LINGER_template& other_value);

public:
SO__LINGER_template();
SO__LINGER_template(template_sel other_value);
SO__LINGER_template(const SO__LINGER& other_value);
SO__LINGER_template(const OPTIONAL<SO__LINGER>& other_value);
SO__LINGER_template(SO__LINGER_template* p_precondition, SO__LINGER_template* p_implied_template);
SO__LINGER_template(Dynamic_Match_Interface<SO__LINGER>* p_dyn_match);
SO__LINGER_template(const SO__LINGER_template& other_value);
~SO__LINGER_template();
SO__LINGER_template& operator=(template_sel other_value);
SO__LINGER_template& operator=(const SO__LINGER& other_value);
SO__LINGER_template& operator=(const OPTIONAL<SO__LINGER>& other_value);
SO__LINGER_template& operator=(const SO__LINGER_template& other_value);
boolean match(const SO__LINGER& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SO__LINGER valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SO__LINGER_template& list_item(unsigned int list_index) const;
INTEGER_template& l__onoff();
const INTEGER_template& l__onoff() const;
INTEGER_template& l__linger();
const INTEGER_template& l__linger() const;
int size_of() const;
void log() const;
void log_match(const SO__LINGER& 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 SCTP__RTOINFO {
  INTEGER field_client__id;
  INTEGER field_srto__initial;
  INTEGER field_srto__max;
  INTEGER field_srto__min;
public:
  SCTP__RTOINFO();
  SCTP__RTOINFO(const INTEGER& par_client__id,
    const INTEGER& par_srto__initial,
    const INTEGER& par_srto__max,
    const INTEGER& par_srto__min);
  SCTP__RTOINFO(const SCTP__RTOINFO& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SCTP__RTOINFO& operator=(const SCTP__RTOINFO& other_value);
  boolean operator==(const SCTP__RTOINFO& other_value) const;
  inline boolean operator!=(const SCTP__RTOINFO& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  inline INTEGER& srto__initial()
    {return field_srto__initial;}
  inline const INTEGER& srto__initial() const
    {return field_srto__initial;}
  inline INTEGER& srto__max()
    {return field_srto__max;}
  inline const INTEGER& srto__max() const
    {return field_srto__max;}
  inline INTEGER& srto__min()
    {return field_srto__min;}
  inline const INTEGER& srto__min() const
    {return field_srto__min;}
  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 SCTP__RTOINFO_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SCTP__RTOINFO_template *list_value;
} value_list;
struct {
SCTP__RTOINFO_template* precondition;
SCTP__RTOINFO_template* implied_template;
} implication_;
dynmatch_struct<SCTP__RTOINFO>* dyn_match;
};

void set_specific();
void copy_value(const SCTP__RTOINFO& other_value);
void copy_template(const SCTP__RTOINFO_template& other_value);

public:
SCTP__RTOINFO_template();
SCTP__RTOINFO_template(template_sel other_value);
SCTP__RTOINFO_template(const SCTP__RTOINFO& other_value);
SCTP__RTOINFO_template(const OPTIONAL<SCTP__RTOINFO>& other_value);
SCTP__RTOINFO_template(SCTP__RTOINFO_template* p_precondition, SCTP__RTOINFO_template* p_implied_template);
SCTP__RTOINFO_template(Dynamic_Match_Interface<SCTP__RTOINFO>* p_dyn_match);
SCTP__RTOINFO_template(const SCTP__RTOINFO_template& other_value);
~SCTP__RTOINFO_template();
SCTP__RTOINFO_template& operator=(template_sel other_value);
SCTP__RTOINFO_template& operator=(const SCTP__RTOINFO& other_value);
SCTP__RTOINFO_template& operator=(const OPTIONAL<SCTP__RTOINFO>& other_value);
SCTP__RTOINFO_template& operator=(const SCTP__RTOINFO_template& other_value);
boolean match(const SCTP__RTOINFO& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SCTP__RTOINFO valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SCTP__RTOINFO_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
INTEGER_template& srto__initial();
const INTEGER_template& srto__initial() const;
INTEGER_template& srto__max();
const INTEGER_template& srto__max() const;
INTEGER_template& srto__min();
const INTEGER_template& srto__min() const;
int size_of() const;
void log() const;
void log_match(const SCTP__RTOINFO& 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 ASP__SCTP__SetSocketOptions : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_Sctp__init = 1, ALT_Sctp__events = 2, ALT_So__linger = 3, ALT_Sctp__rtoinfo = 4 };
private:
union_selection_type union_selection;
union {
SCTP__INIT *field_Sctp__init;
SCTP__EVENTS *field_Sctp__events;
SO__LINGER *field_So__linger;
SCTP__RTOINFO *field_Sctp__rtoinfo;
};
void copy_value(const ASP__SCTP__SetSocketOptions& other_value);

public:
ASP__SCTP__SetSocketOptions();
ASP__SCTP__SetSocketOptions(const ASP__SCTP__SetSocketOptions& other_value);
~ASP__SCTP__SetSocketOptions();
ASP__SCTP__SetSocketOptions& operator=(const ASP__SCTP__SetSocketOptions& other_value);
boolean operator==(const ASP__SCTP__SetSocketOptions& other_value) const;
inline boolean operator!=(const ASP__SCTP__SetSocketOptions& other_value) const { return !(*this == other_value); }
SCTP__INIT& Sctp__init();
const SCTP__INIT& Sctp__init() const;
SCTP__EVENTS& Sctp__events();
const SCTP__EVENTS& Sctp__events() const;
SO__LINGER& So__linger();
const SO__LINGER& So__linger() const;
SCTP__RTOINFO& Sctp__rtoinfo();
const SCTP__RTOINFO& Sctp__rtoinfo() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
};

class ASP__SCTP__SetSocketOptions_template : public Base_Template {
union {
struct {
ASP__SCTP__SetSocketOptions::union_selection_type union_selection;
union {
SCTP__INIT_template *field_Sctp__init;
SCTP__EVENTS_template *field_Sctp__events;
SO__LINGER_template *field_So__linger;
SCTP__RTOINFO_template *field_Sctp__rtoinfo;
};
} single_value;
struct {
unsigned int n_values;
ASP__SCTP__SetSocketOptions_template *list_value;
} value_list;
struct {
ASP__SCTP__SetSocketOptions_template* precondition;
ASP__SCTP__SetSocketOptions_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__SetSocketOptions>* dyn_match;
};
void copy_value(const ASP__SCTP__SetSocketOptions& other_value);

void copy_template(const ASP__SCTP__SetSocketOptions_template& other_value);

public:
ASP__SCTP__SetSocketOptions_template();
ASP__SCTP__SetSocketOptions_template(template_sel other_value);
ASP__SCTP__SetSocketOptions_template(const ASP__SCTP__SetSocketOptions& other_value);
ASP__SCTP__SetSocketOptions_template(const OPTIONAL<ASP__SCTP__SetSocketOptions>& other_value);
ASP__SCTP__SetSocketOptions_template(ASP__SCTP__SetSocketOptions_template* p_precondition, ASP__SCTP__SetSocketOptions_template* p_implied_template);
ASP__SCTP__SetSocketOptions_template(Dynamic_Match_Interface<ASP__SCTP__SetSocketOptions>* p_dyn_match);
ASP__SCTP__SetSocketOptions_template(const ASP__SCTP__SetSocketOptions_template& other_value);
~ASP__SCTP__SetSocketOptions_template();
void clean_up();
ASP__SCTP__SetSocketOptions_template& operator=(template_sel other_value);
ASP__SCTP__SetSocketOptions_template& operator=(const ASP__SCTP__SetSocketOptions& other_value);
ASP__SCTP__SetSocketOptions_template& operator=(const OPTIONAL<ASP__SCTP__SetSocketOptions>& other_value);
ASP__SCTP__SetSocketOptions_template& operator=(const ASP__SCTP__SetSocketOptions_template& other_value);
boolean match(const ASP__SCTP__SetSocketOptions& other_value, boolean legacy = FALSE) const;
boolean is_value() const;ASP__SCTP__SetSocketOptions valueof() const;
ASP__SCTP__SetSocketOptions_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SCTP__INIT_template& Sctp__init();
const SCTP__INIT_template& Sctp__init() const;
SCTP__EVENTS_template& Sctp__events();
const SCTP__EVENTS_template& Sctp__events() const;
SO__LINGER_template& So__linger();
const SO__LINGER_template& So__linger() const;
SCTP__RTOINFO_template& Sctp__rtoinfo();
const SCTP__RTOINFO_template& Sctp__rtoinfo() const;
boolean ischosen(ASP__SCTP__SetSocketOptions::union_selection_type checked_selection) const;
void log() const;
void log_match(const ASP__SCTP__SetSocketOptions& 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 ASP__SCTP__Close {
  OPTIONAL< INTEGER > field_client__id;
public:
  ASP__SCTP__Close();
  ASP__SCTP__Close(const OPTIONAL< INTEGER >& par_client__id);
  ASP__SCTP__Close(const ASP__SCTP__Close& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__Close& operator=(const ASP__SCTP__Close& other_value);
  boolean operator==(const ASP__SCTP__Close& other_value) const;
  inline boolean operator!=(const ASP__SCTP__Close& 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< INTEGER >& client__id()
    {return field_client__id;}
  inline const OPTIONAL< INTEGER >& client__id() const
    {return field_client__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 ASP__SCTP__Close_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__Close_template *list_value;
} value_list;
struct {
ASP__SCTP__Close_template* precondition;
ASP__SCTP__Close_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__Close>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__Close& other_value);
void copy_template(const ASP__SCTP__Close_template& other_value);

public:
ASP__SCTP__Close_template();
ASP__SCTP__Close_template(template_sel other_value);
ASP__SCTP__Close_template(const ASP__SCTP__Close& other_value);
ASP__SCTP__Close_template(const OPTIONAL<ASP__SCTP__Close>& other_value);
ASP__SCTP__Close_template(ASP__SCTP__Close_template* p_precondition, ASP__SCTP__Close_template* p_implied_template);
ASP__SCTP__Close_template(Dynamic_Match_Interface<ASP__SCTP__Close>* p_dyn_match);
ASP__SCTP__Close_template(const ASP__SCTP__Close_template& other_value);
~ASP__SCTP__Close_template();
ASP__SCTP__Close_template& operator=(template_sel other_value);
ASP__SCTP__Close_template& operator=(const ASP__SCTP__Close& other_value);
ASP__SCTP__Close_template& operator=(const OPTIONAL<ASP__SCTP__Close>& other_value);
ASP__SCTP__Close_template& operator=(const ASP__SCTP__Close_template& other_value);
boolean match(const ASP__SCTP__Close& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__Close valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__Close_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__Close& 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 SAC__STATE : public Base_Type { // enum
friend class SAC__STATE_template;
public:
enum enum_type { SCTP__COMM__UP = 0, SCTP__COMM__LOST = 1, SCTP__RESTART = 2, SCTP__SHUTDOWN__COMP = 3, SCTP__CANT__STR__ASSOC = 4, SCTP__UNKNOWN__SAC__STATE = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 };
private:
enum_type enum_value;

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

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

boolean operator==(enum_type other_value) const;
boolean operator==(const SAC__STATE& other_value) const;
inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const SAC__STATE& other_value) const { return !(*this == other_value); }
boolean operator<(enum_type other_value) const;
boolean operator<(const SAC__STATE& other_value) const;
boolean operator>(enum_type other_value) const;
boolean operator>(const SAC__STATE& other_value) const;
inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
inline boolean operator<=(const SAC__STATE& other_value) const { return !(*this > other_value); }
inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
inline boolean operator>=(const SAC__STATE& 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);
static boolean is_valid_enum(int int_par);

static int enum2int(enum_type enum_par);
static int enum2int(const SAC__STATE& 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 SAC__STATE_template : public Base_Template {
union {
SAC__STATE::enum_type single_value;
struct {
unsigned int n_values;
SAC__STATE_template *list_value;
} value_list;
struct {
SAC__STATE_template* precondition;
SAC__STATE_template* implied_template;
} implication_;
dynmatch_struct<SAC__STATE>* dyn_match;
};

void copy_template(const SAC__STATE_template& other_value);

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

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

boolean match(SAC__STATE::enum_type other_value, boolean legacy = FALSE) const;
boolean match(const SAC__STATE& other_value, boolean legacy = FALSE) const;
SAC__STATE::enum_type valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SAC__STATE_template& list_item(unsigned int list_index);
void log() const;
void log_match(const SAC__STATE& 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 ASP__SCTP__ASSOC__CHANGE {
  INTEGER field_client__id;
  SAC__STATE field_sac__state;
public:
  ASP__SCTP__ASSOC__CHANGE();
  ASP__SCTP__ASSOC__CHANGE(const INTEGER& par_client__id,
    const SAC__STATE& par_sac__state);
  ASP__SCTP__ASSOC__CHANGE(const ASP__SCTP__ASSOC__CHANGE& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__ASSOC__CHANGE& operator=(const ASP__SCTP__ASSOC__CHANGE& other_value);
  boolean operator==(const ASP__SCTP__ASSOC__CHANGE& other_value) const;
  inline boolean operator!=(const ASP__SCTP__ASSOC__CHANGE& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  inline SAC__STATE& sac__state()
    {return field_sac__state;}
  inline const SAC__STATE& sac__state() const
    {return field_sac__state;}
  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 ASP__SCTP__ASSOC__CHANGE_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__ASSOC__CHANGE_template *list_value;
} value_list;
struct {
ASP__SCTP__ASSOC__CHANGE_template* precondition;
ASP__SCTP__ASSOC__CHANGE_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__ASSOC__CHANGE>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__ASSOC__CHANGE& other_value);
void copy_template(const ASP__SCTP__ASSOC__CHANGE_template& other_value);

public:
ASP__SCTP__ASSOC__CHANGE_template();
ASP__SCTP__ASSOC__CHANGE_template(template_sel other_value);
ASP__SCTP__ASSOC__CHANGE_template(const ASP__SCTP__ASSOC__CHANGE& other_value);
ASP__SCTP__ASSOC__CHANGE_template(const OPTIONAL<ASP__SCTP__ASSOC__CHANGE>& other_value);
ASP__SCTP__ASSOC__CHANGE_template(ASP__SCTP__ASSOC__CHANGE_template* p_precondition, ASP__SCTP__ASSOC__CHANGE_template* p_implied_template);
ASP__SCTP__ASSOC__CHANGE_template(Dynamic_Match_Interface<ASP__SCTP__ASSOC__CHANGE>* p_dyn_match);
ASP__SCTP__ASSOC__CHANGE_template(const ASP__SCTP__ASSOC__CHANGE_template& other_value);
~ASP__SCTP__ASSOC__CHANGE_template();
ASP__SCTP__ASSOC__CHANGE_template& operator=(template_sel other_value);
ASP__SCTP__ASSOC__CHANGE_template& operator=(const ASP__SCTP__ASSOC__CHANGE& other_value);
ASP__SCTP__ASSOC__CHANGE_template& operator=(const OPTIONAL<ASP__SCTP__ASSOC__CHANGE>& other_value);
ASP__SCTP__ASSOC__CHANGE_template& operator=(const ASP__SCTP__ASSOC__CHANGE_template& other_value);
boolean match(const ASP__SCTP__ASSOC__CHANGE& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__ASSOC__CHANGE valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__ASSOC__CHANGE_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
SAC__STATE_template& sac__state();
const SAC__STATE_template& sac__state() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__ASSOC__CHANGE& 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 SPC__STATE : public Base_Type { // enum
friend class SPC__STATE_template;
public:
enum enum_type { SCTP__ADDR__AVAILABLE = 0, SCTP__ADDR__UNREACHABLE = 1, SCTP__ADDR__REMOVED = 2, SCTP__ADDR__ADDED = 3, SCTP__ADDR__MADE__PRIM = 4, SCTP__ADDR__CONFIRMED = 5, SCTP__UNKNOWN__SPC__STATE = 6, UNKNOWN_VALUE = 7, UNBOUND_VALUE = 8 };
private:
enum_type enum_value;

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

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

boolean operator==(enum_type other_value) const;
boolean operator==(const SPC__STATE& other_value) const;
inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const SPC__STATE& other_value) const { return !(*this == other_value); }
boolean operator<(enum_type other_value) const;
boolean operator<(const SPC__STATE& other_value) const;
boolean operator>(enum_type other_value) const;
boolean operator>(const SPC__STATE& other_value) const;
inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
inline boolean operator<=(const SPC__STATE& other_value) const { return !(*this > other_value); }
inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
inline boolean operator>=(const SPC__STATE& 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);
static boolean is_valid_enum(int int_par);

static int enum2int(enum_type enum_par);
static int enum2int(const SPC__STATE& 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 SPC__STATE_template : public Base_Template {
union {
SPC__STATE::enum_type single_value;
struct {
unsigned int n_values;
SPC__STATE_template *list_value;
} value_list;
struct {
SPC__STATE_template* precondition;
SPC__STATE_template* implied_template;
} implication_;
dynmatch_struct<SPC__STATE>* dyn_match;
};

void copy_template(const SPC__STATE_template& other_value);

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

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

boolean match(SPC__STATE::enum_type other_value, boolean legacy = FALSE) const;
boolean match(const SPC__STATE& other_value, boolean legacy = FALSE) const;
SPC__STATE::enum_type valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SPC__STATE_template& list_item(unsigned int list_index);
void log() const;
void log_match(const SPC__STATE& 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 ASP__SCTP__PEER__ADDR__CHANGE {
  INTEGER field_client__id;
  SPC__STATE field_spc__state;
public:
  ASP__SCTP__PEER__ADDR__CHANGE();
  ASP__SCTP__PEER__ADDR__CHANGE(const INTEGER& par_client__id,
    const SPC__STATE& par_spc__state);
  ASP__SCTP__PEER__ADDR__CHANGE(const ASP__SCTP__PEER__ADDR__CHANGE& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__PEER__ADDR__CHANGE& operator=(const ASP__SCTP__PEER__ADDR__CHANGE& other_value);
  boolean operator==(const ASP__SCTP__PEER__ADDR__CHANGE& other_value) const;
  inline boolean operator!=(const ASP__SCTP__PEER__ADDR__CHANGE& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  inline SPC__STATE& spc__state()
    {return field_spc__state;}
  inline const SPC__STATE& spc__state() const
    {return field_spc__state;}
  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 ASP__SCTP__PEER__ADDR__CHANGE_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__PEER__ADDR__CHANGE_template *list_value;
} value_list;
struct {
ASP__SCTP__PEER__ADDR__CHANGE_template* precondition;
ASP__SCTP__PEER__ADDR__CHANGE_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__PEER__ADDR__CHANGE>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__PEER__ADDR__CHANGE& other_value);
void copy_template(const ASP__SCTP__PEER__ADDR__CHANGE_template& other_value);

public:
ASP__SCTP__PEER__ADDR__CHANGE_template();
ASP__SCTP__PEER__ADDR__CHANGE_template(template_sel other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template(const ASP__SCTP__PEER__ADDR__CHANGE& other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template(const OPTIONAL<ASP__SCTP__PEER__ADDR__CHANGE>& other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template(ASP__SCTP__PEER__ADDR__CHANGE_template* p_precondition, ASP__SCTP__PEER__ADDR__CHANGE_template* p_implied_template);
ASP__SCTP__PEER__ADDR__CHANGE_template(Dynamic_Match_Interface<ASP__SCTP__PEER__ADDR__CHANGE>* p_dyn_match);
ASP__SCTP__PEER__ADDR__CHANGE_template(const ASP__SCTP__PEER__ADDR__CHANGE_template& other_value);
~ASP__SCTP__PEER__ADDR__CHANGE_template();
ASP__SCTP__PEER__ADDR__CHANGE_template& operator=(template_sel other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template& operator=(const ASP__SCTP__PEER__ADDR__CHANGE& other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template& operator=(const OPTIONAL<ASP__SCTP__PEER__ADDR__CHANGE>& other_value);
ASP__SCTP__PEER__ADDR__CHANGE_template& operator=(const ASP__SCTP__PEER__ADDR__CHANGE_template& other_value);
boolean match(const ASP__SCTP__PEER__ADDR__CHANGE& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__PEER__ADDR__CHANGE valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__PEER__ADDR__CHANGE_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
SPC__STATE_template& spc__state();
const SPC__STATE_template& spc__state() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__PEER__ADDR__CHANGE& 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 ASP__SCTP__SEND__FAILED {
  INTEGER field_client__id;
public:
  ASP__SCTP__SEND__FAILED();
  ASP__SCTP__SEND__FAILED(const INTEGER& par_client__id);
  ASP__SCTP__SEND__FAILED(const ASP__SCTP__SEND__FAILED& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__SEND__FAILED& operator=(const ASP__SCTP__SEND__FAILED& other_value);
  boolean operator==(const ASP__SCTP__SEND__FAILED& other_value) const;
  inline boolean operator!=(const ASP__SCTP__SEND__FAILED& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  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 ASP__SCTP__SEND__FAILED_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__SEND__FAILED_template *list_value;
} value_list;
struct {
ASP__SCTP__SEND__FAILED_template* precondition;
ASP__SCTP__SEND__FAILED_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__SEND__FAILED>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__SEND__FAILED& other_value);
void copy_template(const ASP__SCTP__SEND__FAILED_template& other_value);

public:
ASP__SCTP__SEND__FAILED_template();
ASP__SCTP__SEND__FAILED_template(template_sel other_value);
ASP__SCTP__SEND__FAILED_template(const ASP__SCTP__SEND__FAILED& other_value);
ASP__SCTP__SEND__FAILED_template(const OPTIONAL<ASP__SCTP__SEND__FAILED>& other_value);
ASP__SCTP__SEND__FAILED_template(ASP__SCTP__SEND__FAILED_template* p_precondition, ASP__SCTP__SEND__FAILED_template* p_implied_template);
ASP__SCTP__SEND__FAILED_template(Dynamic_Match_Interface<ASP__SCTP__SEND__FAILED>* p_dyn_match);
ASP__SCTP__SEND__FAILED_template(const ASP__SCTP__SEND__FAILED_template& other_value);
~ASP__SCTP__SEND__FAILED_template();
ASP__SCTP__SEND__FAILED_template& operator=(template_sel other_value);
ASP__SCTP__SEND__FAILED_template& operator=(const ASP__SCTP__SEND__FAILED& other_value);
ASP__SCTP__SEND__FAILED_template& operator=(const OPTIONAL<ASP__SCTP__SEND__FAILED>& other_value);
ASP__SCTP__SEND__FAILED_template& operator=(const ASP__SCTP__SEND__FAILED_template& other_value);
boolean match(const ASP__SCTP__SEND__FAILED& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__SEND__FAILED valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__SEND__FAILED_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__SEND__FAILED& 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 ASP__SCTP__REMOTE__ERROR {
  INTEGER field_client__id;
public:
  ASP__SCTP__REMOTE__ERROR();
  ASP__SCTP__REMOTE__ERROR(const INTEGER& par_client__id);
  ASP__SCTP__REMOTE__ERROR(const ASP__SCTP__REMOTE__ERROR& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__REMOTE__ERROR& operator=(const ASP__SCTP__REMOTE__ERROR& other_value);
  boolean operator==(const ASP__SCTP__REMOTE__ERROR& other_value) const;
  inline boolean operator!=(const ASP__SCTP__REMOTE__ERROR& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  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 ASP__SCTP__REMOTE__ERROR_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__REMOTE__ERROR_template *list_value;
} value_list;
struct {
ASP__SCTP__REMOTE__ERROR_template* precondition;
ASP__SCTP__REMOTE__ERROR_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__REMOTE__ERROR>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__REMOTE__ERROR& other_value);
void copy_template(const ASP__SCTP__REMOTE__ERROR_template& other_value);

public:
ASP__SCTP__REMOTE__ERROR_template();
ASP__SCTP__REMOTE__ERROR_template(template_sel other_value);
ASP__SCTP__REMOTE__ERROR_template(const ASP__SCTP__REMOTE__ERROR& other_value);
ASP__SCTP__REMOTE__ERROR_template(const OPTIONAL<ASP__SCTP__REMOTE__ERROR>& other_value);
ASP__SCTP__REMOTE__ERROR_template(ASP__SCTP__REMOTE__ERROR_template* p_precondition, ASP__SCTP__REMOTE__ERROR_template* p_implied_template);
ASP__SCTP__REMOTE__ERROR_template(Dynamic_Match_Interface<ASP__SCTP__REMOTE__ERROR>* p_dyn_match);
ASP__SCTP__REMOTE__ERROR_template(const ASP__SCTP__REMOTE__ERROR_template& other_value);
~ASP__SCTP__REMOTE__ERROR_template();
ASP__SCTP__REMOTE__ERROR_template& operator=(template_sel other_value);
ASP__SCTP__REMOTE__ERROR_template& operator=(const ASP__SCTP__REMOTE__ERROR& other_value);
ASP__SCTP__REMOTE__ERROR_template& operator=(const OPTIONAL<ASP__SCTP__REMOTE__ERROR>& other_value);
ASP__SCTP__REMOTE__ERROR_template& operator=(const ASP__SCTP__REMOTE__ERROR_template& other_value);
boolean match(const ASP__SCTP__REMOTE__ERROR& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__REMOTE__ERROR valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__REMOTE__ERROR_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__REMOTE__ERROR& 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 ASP__SCTP__SHUTDOWN__EVENT {
  INTEGER field_client__id;
public:
  ASP__SCTP__SHUTDOWN__EVENT();
  ASP__SCTP__SHUTDOWN__EVENT(const INTEGER& par_client__id);
  ASP__SCTP__SHUTDOWN__EVENT(const ASP__SCTP__SHUTDOWN__EVENT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__SHUTDOWN__EVENT& operator=(const ASP__SCTP__SHUTDOWN__EVENT& other_value);
  boolean operator==(const ASP__SCTP__SHUTDOWN__EVENT& other_value) const;
  inline boolean operator!=(const ASP__SCTP__SHUTDOWN__EVENT& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  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 ASP__SCTP__SHUTDOWN__EVENT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__SHUTDOWN__EVENT_template *list_value;
} value_list;
struct {
ASP__SCTP__SHUTDOWN__EVENT_template* precondition;
ASP__SCTP__SHUTDOWN__EVENT_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__SHUTDOWN__EVENT>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__SHUTDOWN__EVENT& other_value);
void copy_template(const ASP__SCTP__SHUTDOWN__EVENT_template& other_value);

public:
ASP__SCTP__SHUTDOWN__EVENT_template();
ASP__SCTP__SHUTDOWN__EVENT_template(template_sel other_value);
ASP__SCTP__SHUTDOWN__EVENT_template(const ASP__SCTP__SHUTDOWN__EVENT& other_value);
ASP__SCTP__SHUTDOWN__EVENT_template(const OPTIONAL<ASP__SCTP__SHUTDOWN__EVENT>& other_value);
ASP__SCTP__SHUTDOWN__EVENT_template(ASP__SCTP__SHUTDOWN__EVENT_template* p_precondition, ASP__SCTP__SHUTDOWN__EVENT_template* p_implied_template);
ASP__SCTP__SHUTDOWN__EVENT_template(Dynamic_Match_Interface<ASP__SCTP__SHUTDOWN__EVENT>* p_dyn_match);
ASP__SCTP__SHUTDOWN__EVENT_template(const ASP__SCTP__SHUTDOWN__EVENT_template& other_value);
~ASP__SCTP__SHUTDOWN__EVENT_template();
ASP__SCTP__SHUTDOWN__EVENT_template& operator=(template_sel other_value);
ASP__SCTP__SHUTDOWN__EVENT_template& operator=(const ASP__SCTP__SHUTDOWN__EVENT& other_value);
ASP__SCTP__SHUTDOWN__EVENT_template& operator=(const OPTIONAL<ASP__SCTP__SHUTDOWN__EVENT>& other_value);
ASP__SCTP__SHUTDOWN__EVENT_template& operator=(const ASP__SCTP__SHUTDOWN__EVENT_template& other_value);
boolean match(const ASP__SCTP__SHUTDOWN__EVENT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__SHUTDOWN__EVENT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__SHUTDOWN__EVENT_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__SHUTDOWN__EVENT& 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 ASP__SCTP__PARTIAL__DELIVERY__EVENT {
  INTEGER field_client__id;
public:
  ASP__SCTP__PARTIAL__DELIVERY__EVENT();
  ASP__SCTP__PARTIAL__DELIVERY__EVENT(const INTEGER& par_client__id);
  ASP__SCTP__PARTIAL__DELIVERY__EVENT(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__PARTIAL__DELIVERY__EVENT& operator=(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value);
  boolean operator==(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value) const;
  inline boolean operator!=(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  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 ASP__SCTP__PARTIAL__DELIVERY__EVENT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template *list_value;
} value_list;
struct {
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template* precondition;
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__PARTIAL__DELIVERY__EVENT>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value);
void copy_template(const ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& other_value);

public:
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template();
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(template_sel other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(const OPTIONAL<ASP__SCTP__PARTIAL__DELIVERY__EVENT>& other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(ASP__SCTP__PARTIAL__DELIVERY__EVENT_template* p_precondition, ASP__SCTP__PARTIAL__DELIVERY__EVENT_template* p_implied_template);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(Dynamic_Match_Interface<ASP__SCTP__PARTIAL__DELIVERY__EVENT>* p_dyn_match);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template(const ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& other_value);
~ASP__SCTP__PARTIAL__DELIVERY__EVENT_template();
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& operator=(template_sel other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& operator=(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& operator=(const OPTIONAL<ASP__SCTP__PARTIAL__DELIVERY__EVENT>& other_value);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& operator=(const ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& other_value);
boolean match(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__PARTIAL__DELIVERY__EVENT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__PARTIAL__DELIVERY__EVENT_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__PARTIAL__DELIVERY__EVENT& 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 ASP__SCTP__ADAPTION__INDICATION {
  INTEGER field_client__id;
public:
  ASP__SCTP__ADAPTION__INDICATION();
  ASP__SCTP__ADAPTION__INDICATION(const INTEGER& par_client__id);
  ASP__SCTP__ADAPTION__INDICATION(const ASP__SCTP__ADAPTION__INDICATION& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__ADAPTION__INDICATION& operator=(const ASP__SCTP__ADAPTION__INDICATION& other_value);
  boolean operator==(const ASP__SCTP__ADAPTION__INDICATION& other_value) const;
  inline boolean operator!=(const ASP__SCTP__ADAPTION__INDICATION& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  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 ASP__SCTP__ADAPTION__INDICATION_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__ADAPTION__INDICATION_template *list_value;
} value_list;
struct {
ASP__SCTP__ADAPTION__INDICATION_template* precondition;
ASP__SCTP__ADAPTION__INDICATION_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__ADAPTION__INDICATION>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__ADAPTION__INDICATION& other_value);
void copy_template(const ASP__SCTP__ADAPTION__INDICATION_template& other_value);

public:
ASP__SCTP__ADAPTION__INDICATION_template();
ASP__SCTP__ADAPTION__INDICATION_template(template_sel other_value);
ASP__SCTP__ADAPTION__INDICATION_template(const ASP__SCTP__ADAPTION__INDICATION& other_value);
ASP__SCTP__ADAPTION__INDICATION_template(const OPTIONAL<ASP__SCTP__ADAPTION__INDICATION>& other_value);
ASP__SCTP__ADAPTION__INDICATION_template(ASP__SCTP__ADAPTION__INDICATION_template* p_precondition, ASP__SCTP__ADAPTION__INDICATION_template* p_implied_template);
ASP__SCTP__ADAPTION__INDICATION_template(Dynamic_Match_Interface<ASP__SCTP__ADAPTION__INDICATION>* p_dyn_match);
ASP__SCTP__ADAPTION__INDICATION_template(const ASP__SCTP__ADAPTION__INDICATION_template& other_value);
~ASP__SCTP__ADAPTION__INDICATION_template();
ASP__SCTP__ADAPTION__INDICATION_template& operator=(template_sel other_value);
ASP__SCTP__ADAPTION__INDICATION_template& operator=(const ASP__SCTP__ADAPTION__INDICATION& other_value);
ASP__SCTP__ADAPTION__INDICATION_template& operator=(const OPTIONAL<ASP__SCTP__ADAPTION__INDICATION>& other_value);
ASP__SCTP__ADAPTION__INDICATION_template& operator=(const ASP__SCTP__ADAPTION__INDICATION_template& other_value);
boolean match(const ASP__SCTP__ADAPTION__INDICATION& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__ADAPTION__INDICATION valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__ADAPTION__INDICATION_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__ADAPTION__INDICATION& 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 ASP__SCTP__Connected {
  INTEGER field_client__id;
  CHARSTRING field_local__hostname;
  INTEGER field_local__portnumber;
  CHARSTRING field_peer__hostname;
  INTEGER field_peer__portnumber;
public:
  ASP__SCTP__Connected();
  ASP__SCTP__Connected(const INTEGER& par_client__id,
    const CHARSTRING& par_local__hostname,
    const INTEGER& par_local__portnumber,
    const CHARSTRING& par_peer__hostname,
    const INTEGER& par_peer__portnumber);
  ASP__SCTP__Connected(const ASP__SCTP__Connected& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__Connected& operator=(const ASP__SCTP__Connected& other_value);
  boolean operator==(const ASP__SCTP__Connected& other_value) const;
  inline boolean operator!=(const ASP__SCTP__Connected& 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& client__id()
    {return field_client__id;}
  inline const INTEGER& client__id() const
    {return field_client__id;}
  inline CHARSTRING& local__hostname()
    {return field_local__hostname;}
  inline const CHARSTRING& local__hostname() const
    {return field_local__hostname;}
  inline INTEGER& local__portnumber()
    {return field_local__portnumber;}
  inline const INTEGER& local__portnumber() const
    {return field_local__portnumber;}
  inline CHARSTRING& peer__hostname()
    {return field_peer__hostname;}
  inline const CHARSTRING& peer__hostname() const
    {return field_peer__hostname;}
  inline INTEGER& peer__portnumber()
    {return field_peer__portnumber;}
  inline const INTEGER& peer__portnumber() const
    {return field_peer__portnumber;}
  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 ASP__SCTP__Connected_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__Connected_template *list_value;
} value_list;
struct {
ASP__SCTP__Connected_template* precondition;
ASP__SCTP__Connected_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__Connected>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__Connected& other_value);
void copy_template(const ASP__SCTP__Connected_template& other_value);

public:
ASP__SCTP__Connected_template();
ASP__SCTP__Connected_template(template_sel other_value);
ASP__SCTP__Connected_template(const ASP__SCTP__Connected& other_value);
ASP__SCTP__Connected_template(const OPTIONAL<ASP__SCTP__Connected>& other_value);
ASP__SCTP__Connected_template(ASP__SCTP__Connected_template* p_precondition, ASP__SCTP__Connected_template* p_implied_template);
ASP__SCTP__Connected_template(Dynamic_Match_Interface<ASP__SCTP__Connected>* p_dyn_match);
ASP__SCTP__Connected_template(const ASP__SCTP__Connected_template& other_value);
~ASP__SCTP__Connected_template();
ASP__SCTP__Connected_template& operator=(template_sel other_value);
ASP__SCTP__Connected_template& operator=(const ASP__SCTP__Connected& other_value);
ASP__SCTP__Connected_template& operator=(const OPTIONAL<ASP__SCTP__Connected>& other_value);
ASP__SCTP__Connected_template& operator=(const ASP__SCTP__Connected_template& other_value);
boolean match(const ASP__SCTP__Connected& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__Connected valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__Connected_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
CHARSTRING_template& local__hostname();
const CHARSTRING_template& local__hostname() const;
INTEGER_template& local__portnumber();
const INTEGER_template& local__portnumber() const;
CHARSTRING_template& peer__hostname();
const CHARSTRING_template& peer__hostname() const;
INTEGER_template& peer__portnumber();
const INTEGER_template& peer__portnumber() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__Connected& 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 ASP__SCTP__SENDMSG__ERROR {
  OPTIONAL< INTEGER > field_client__id;
  INTEGER field_sinfo__stream;
  INTEGER field_sinfo__ppid;
  OCTETSTRING field_data;
public:
  ASP__SCTP__SENDMSG__ERROR();
  ASP__SCTP__SENDMSG__ERROR(const OPTIONAL< INTEGER >& par_client__id,
    const INTEGER& par_sinfo__stream,
    const INTEGER& par_sinfo__ppid,
    const OCTETSTRING& par_data);
  ASP__SCTP__SENDMSG__ERROR(const ASP__SCTP__SENDMSG__ERROR& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__SENDMSG__ERROR& operator=(const ASP__SCTP__SENDMSG__ERROR& other_value);
  boolean operator==(const ASP__SCTP__SENDMSG__ERROR& other_value) const;
  inline boolean operator!=(const ASP__SCTP__SENDMSG__ERROR& 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< INTEGER >& client__id()
    {return field_client__id;}
  inline const OPTIONAL< INTEGER >& client__id() const
    {return field_client__id;}
  inline INTEGER& sinfo__stream()
    {return field_sinfo__stream;}
  inline const INTEGER& sinfo__stream() const
    {return field_sinfo__stream;}
  inline INTEGER& sinfo__ppid()
    {return field_sinfo__ppid;}
  inline const INTEGER& sinfo__ppid() const
    {return field_sinfo__ppid;}
  inline OCTETSTRING& data()
    {return field_data;}
  inline const OCTETSTRING& data() const
    {return field_data;}
  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 ASP__SCTP__SENDMSG__ERROR_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__SENDMSG__ERROR_template *list_value;
} value_list;
struct {
ASP__SCTP__SENDMSG__ERROR_template* precondition;
ASP__SCTP__SENDMSG__ERROR_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__SENDMSG__ERROR>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__SENDMSG__ERROR& other_value);
void copy_template(const ASP__SCTP__SENDMSG__ERROR_template& other_value);

public:
ASP__SCTP__SENDMSG__ERROR_template();
ASP__SCTP__SENDMSG__ERROR_template(template_sel other_value);
ASP__SCTP__SENDMSG__ERROR_template(const ASP__SCTP__SENDMSG__ERROR& other_value);
ASP__SCTP__SENDMSG__ERROR_template(const OPTIONAL<ASP__SCTP__SENDMSG__ERROR>& other_value);
ASP__SCTP__SENDMSG__ERROR_template(ASP__SCTP__SENDMSG__ERROR_template* p_precondition, ASP__SCTP__SENDMSG__ERROR_template* p_implied_template);
ASP__SCTP__SENDMSG__ERROR_template(Dynamic_Match_Interface<ASP__SCTP__SENDMSG__ERROR>* p_dyn_match);
ASP__SCTP__SENDMSG__ERROR_template(const ASP__SCTP__SENDMSG__ERROR_template& other_value);
~ASP__SCTP__SENDMSG__ERROR_template();
ASP__SCTP__SENDMSG__ERROR_template& operator=(template_sel other_value);
ASP__SCTP__SENDMSG__ERROR_template& operator=(const ASP__SCTP__SENDMSG__ERROR& other_value);
ASP__SCTP__SENDMSG__ERROR_template& operator=(const OPTIONAL<ASP__SCTP__SENDMSG__ERROR>& other_value);
ASP__SCTP__SENDMSG__ERROR_template& operator=(const ASP__SCTP__SENDMSG__ERROR_template& other_value);
boolean match(const ASP__SCTP__SENDMSG__ERROR& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__SENDMSG__ERROR valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__SENDMSG__ERROR_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
INTEGER_template& sinfo__stream();
const INTEGER_template& sinfo__stream() const;
INTEGER_template& sinfo__ppid();
const INTEGER_template& sinfo__ppid() const;
OCTETSTRING_template& data();
const OCTETSTRING_template& data() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__SENDMSG__ERROR& 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 ASP__SCTP__RESULT {
  OPTIONAL< INTEGER > field_client__id;
  BOOLEAN field_error__status;
  OPTIONAL< CHARSTRING > field_error__message;
public:
  ASP__SCTP__RESULT();
  ASP__SCTP__RESULT(const OPTIONAL< INTEGER >& par_client__id,
    const BOOLEAN& par_error__status,
    const OPTIONAL< CHARSTRING >& par_error__message);
  ASP__SCTP__RESULT(const ASP__SCTP__RESULT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ASP__SCTP__RESULT& operator=(const ASP__SCTP__RESULT& other_value);
  boolean operator==(const ASP__SCTP__RESULT& other_value) const;
  inline boolean operator!=(const ASP__SCTP__RESULT& 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< INTEGER >& client__id()
    {return field_client__id;}
  inline const OPTIONAL< INTEGER >& client__id() const
    {return field_client__id;}
  inline BOOLEAN& error__status()
    {return field_error__status;}
  inline const BOOLEAN& error__status() const
    {return field_error__status;}
  inline OPTIONAL< CHARSTRING >& error__message()
    {return field_error__message;}
  inline const OPTIONAL< CHARSTRING >& error__message() const
    {return field_error__message;}
  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 ASP__SCTP__RESULT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ASP__SCTP__RESULT_template *list_value;
} value_list;
struct {
ASP__SCTP__RESULT_template* precondition;
ASP__SCTP__RESULT_template* implied_template;
} implication_;
dynmatch_struct<ASP__SCTP__RESULT>* dyn_match;
};

void set_specific();
void copy_value(const ASP__SCTP__RESULT& other_value);
void copy_template(const ASP__SCTP__RESULT_template& other_value);

public:
ASP__SCTP__RESULT_template();
ASP__SCTP__RESULT_template(template_sel other_value);
ASP__SCTP__RESULT_template(const ASP__SCTP__RESULT& other_value);
ASP__SCTP__RESULT_template(const OPTIONAL<ASP__SCTP__RESULT>& other_value);
ASP__SCTP__RESULT_template(ASP__SCTP__RESULT_template* p_precondition, ASP__SCTP__RESULT_template* p_implied_template);
ASP__SCTP__RESULT_template(Dynamic_Match_Interface<ASP__SCTP__RESULT>* p_dyn_match);
ASP__SCTP__RESULT_template(const ASP__SCTP__RESULT_template& other_value);
~ASP__SCTP__RESULT_template();
ASP__SCTP__RESULT_template& operator=(template_sel other_value);
ASP__SCTP__RESULT_template& operator=(const ASP__SCTP__RESULT& other_value);
ASP__SCTP__RESULT_template& operator=(const OPTIONAL<ASP__SCTP__RESULT>& other_value);
ASP__SCTP__RESULT_template& operator=(const ASP__SCTP__RESULT_template& other_value);
boolean match(const ASP__SCTP__RESULT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ASP__SCTP__RESULT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ASP__SCTP__RESULT_template& list_item(unsigned int list_index) const;
INTEGER_template& client__id();
const INTEGER_template& client__id() const;
BOOLEAN_template& error__status();
const BOOLEAN_template& error__status() const;
CHARSTRING_template& error__message();
const CHARSTRING_template& error__message() const;
int size_of() const;
void log() const;
void log_match(const ASP__SCTP__RESULT& 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;
};


/* Global variable declarations */

extern const XERdescriptor_t PDU__SCTP_xer_;
extern const TTCN_OERdescriptor_t PDU__SCTP_oer_;
extern const TTCN_Typedescriptor_t PDU__SCTP_descr_;
extern const XERdescriptor_t ASP__SCTP_sinfo__stream_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP_sinfo__stream_descr_;
extern const XERdescriptor_t ASP__SCTP_sinfo__ppid_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP_sinfo__ppid_descr_;
extern const XERdescriptor_t ASP__SCTP_data_xer_;
extern const TTCN_OERdescriptor_t ASP__SCTP_data_oer_;
extern const TTCN_Typedescriptor_t ASP__SCTP_data_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP_descr_;
extern const XERdescriptor_t ASP__SCTP_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connect_descr_;
extern const XERdescriptor_t ASP__SCTP__Connect_peer__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connect_peer__hostname_descr_;
extern const XERdescriptor_t ASP__SCTP__Connect_peer__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connect_peer__portnumber_descr_;
extern const XERdescriptor_t ASP__SCTP__ConnectFrom_local__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ConnectFrom_local__portnumber_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ConnectFrom_descr_;
extern const XERdescriptor_t ASP__SCTP__ConnectFrom_local__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ConnectFrom_local__hostname_descr_;
extern const XERdescriptor_t ASP__SCTP__ConnectFrom_peer__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ConnectFrom_peer__hostname_descr_;
extern const XERdescriptor_t ASP__SCTP__ConnectFrom_peer__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ConnectFrom_peer__portnumber_descr_;
extern const XERdescriptor_t ASP__SCTP__Listen_local__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Listen_local__portnumber_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Listen_descr_;
extern const XERdescriptor_t ASP__SCTP__Listen_local__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Listen_local__hostname_descr_;
extern const XERdescriptor_t SCTP__INIT_sinit__num__ostreams_xer_;
extern const TTCN_Typedescriptor_t SCTP__INIT_sinit__num__ostreams_descr_;
extern const XERdescriptor_t SCTP__INIT_sinit__max__instreams_xer_;
extern const TTCN_Typedescriptor_t SCTP__INIT_sinit__max__instreams_descr_;
extern const XERdescriptor_t SCTP__INIT_sinit__max__attempts_xer_;
extern const TTCN_Typedescriptor_t SCTP__INIT_sinit__max__attempts_descr_;
extern const XERdescriptor_t SCTP__INIT_sinit__max__init__timeo_xer_;
extern const TTCN_Typedescriptor_t SCTP__INIT_sinit__max__init__timeo_descr_;
extern const TTCN_Typedescriptor_t SCTP__INIT_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__data__io__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__data__io__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__data__io__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__association__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__association__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__association__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__address__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__address__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__address__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__send__failure__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__send__failure__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__send__failure__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__peer__error__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__peer__error__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__peer__error__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__shutdown__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__shutdown__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__shutdown__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__partial__delivery__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__partial__delivery__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__partial__delivery__event_descr_;
extern const XERdescriptor_t SCTP__EVENTS_sctp__adaption__layer__event_xer_;
extern const TTCN_OERdescriptor_t SCTP__EVENTS_sctp__adaption__layer__event_oer_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_sctp__adaption__layer__event_descr_;
extern const TTCN_Typedescriptor_t SCTP__EVENTS_descr_;
extern const XERdescriptor_t SO__LINGER_l__onoff_xer_;
extern const TTCN_Typedescriptor_t SO__LINGER_l__onoff_descr_;
extern const XERdescriptor_t SO__LINGER_l__linger_xer_;
extern const TTCN_Typedescriptor_t SO__LINGER_l__linger_descr_;
extern const TTCN_Typedescriptor_t SO__LINGER_descr_;
extern const XERdescriptor_t SCTP__RTOINFO_client__id_xer_;
extern const TTCN_Typedescriptor_t SCTP__RTOINFO_client__id_descr_;
extern const XERdescriptor_t SCTP__RTOINFO_srto__initial_xer_;
extern const TTCN_Typedescriptor_t SCTP__RTOINFO_srto__initial_descr_;
extern const XERdescriptor_t SCTP__RTOINFO_srto__max_xer_;
extern const TTCN_Typedescriptor_t SCTP__RTOINFO_srto__max_descr_;
extern const XERdescriptor_t SCTP__RTOINFO_srto__min_xer_;
extern const TTCN_Typedescriptor_t SCTP__RTOINFO_srto__min_descr_;
extern const TTCN_Typedescriptor_t SCTP__RTOINFO_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SetSocketOptions_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Close_descr_;
extern const XERdescriptor_t ASP__SCTP__Close_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Close_client__id_descr_;
extern const TTCN_Typedescriptor_t SAC__STATE_descr_;
extern const XERdescriptor_t ASP__SCTP__ASSOC__CHANGE_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ASSOC__CHANGE_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ASSOC__CHANGE_descr_;
extern const TTCN_Typedescriptor_t SPC__STATE_descr_;
extern const XERdescriptor_t ASP__SCTP__PEER__ADDR__CHANGE_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__PEER__ADDR__CHANGE_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__PEER__ADDR__CHANGE_descr_;
extern const XERdescriptor_t ASP__SCTP__SEND__FAILED_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SEND__FAILED_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SEND__FAILED_descr_;
extern const XERdescriptor_t ASP__SCTP__REMOTE__ERROR_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__REMOTE__ERROR_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__REMOTE__ERROR_descr_;
extern const XERdescriptor_t ASP__SCTP__SHUTDOWN__EVENT_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SHUTDOWN__EVENT_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SHUTDOWN__EVENT_descr_;
extern const XERdescriptor_t ASP__SCTP__PARTIAL__DELIVERY__EVENT_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__PARTIAL__DELIVERY__EVENT_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__PARTIAL__DELIVERY__EVENT_descr_;
extern const XERdescriptor_t ASP__SCTP__ADAPTION__INDICATION_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ADAPTION__INDICATION_client__id_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__ADAPTION__INDICATION_descr_;
extern const XERdescriptor_t ASP__SCTP__Connected_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_client__id_descr_;
extern const XERdescriptor_t ASP__SCTP__Connected_local__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_local__hostname_descr_;
extern const XERdescriptor_t ASP__SCTP__Connected_local__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_local__portnumber_descr_;
extern const XERdescriptor_t ASP__SCTP__Connected_peer__hostname_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_peer__hostname_descr_;
extern const XERdescriptor_t ASP__SCTP__Connected_peer__portnumber_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_peer__portnumber_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__Connected_descr_;
extern const XERdescriptor_t ASP__SCTP__SENDMSG__ERROR_sinfo__stream_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SENDMSG__ERROR_sinfo__stream_descr_;
extern const XERdescriptor_t ASP__SCTP__SENDMSG__ERROR_sinfo__ppid_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SENDMSG__ERROR_sinfo__ppid_descr_;
extern const XERdescriptor_t ASP__SCTP__SENDMSG__ERROR_data_xer_;
extern const TTCN_OERdescriptor_t ASP__SCTP__SENDMSG__ERROR_data_oer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SENDMSG__ERROR_data_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SENDMSG__ERROR_descr_;
extern const XERdescriptor_t ASP__SCTP__SENDMSG__ERROR_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__SENDMSG__ERROR_client__id_descr_;
extern const XERdescriptor_t ASP__SCTP__RESULT_error__status_xer_;
extern const TTCN_OERdescriptor_t ASP__SCTP__RESULT_error__status_oer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__RESULT_error__status_descr_;
extern const TTCN_Typedescriptor_t ASP__SCTP__RESULT_descr_;
extern const XERdescriptor_t ASP__SCTP__RESULT_client__id_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__RESULT_client__id_descr_;
extern const XERdescriptor_t ASP__SCTP__RESULT_error__message_xer_;
extern const TTCN_Typedescriptor_t ASP__SCTP__RESULT_error__message_descr_;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
