|
|
|
@ -2238,101 +2238,6 @@ struct sib_type_info_s {
|
|
|
|
|
void to_json(json_writer& j) const;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// SetupRelease{ElementTypeParam} ::= CHOICE
|
|
|
|
|
template <class elem_type_paramT_>
|
|
|
|
|
struct setup_release_c {
|
|
|
|
|
struct types_opts {
|
|
|
|
|
enum options { release, setup, nulltype } value;
|
|
|
|
|
|
|
|
|
|
const char* to_string() const
|
|
|
|
|
{
|
|
|
|
|
static const char* options[] = {"release", "setup"};
|
|
|
|
|
return convert_enum_idx(options, 2, value, "setup_release_c::types");
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
typedef enumerated<types_opts> types;
|
|
|
|
|
|
|
|
|
|
// choice methods
|
|
|
|
|
setup_release_c() = default;
|
|
|
|
|
types type() const { return type_; }
|
|
|
|
|
|
|
|
|
|
// getters
|
|
|
|
|
elem_type_paramT_& setup()
|
|
|
|
|
{
|
|
|
|
|
assert_choice_type(types::setup, type_, "SetupRelease");
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
const elem_type_paramT_& setup() const
|
|
|
|
|
{
|
|
|
|
|
assert_choice_type(types::setup, type_, "SetupRelease");
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
void set_release() { set(types::release); }
|
|
|
|
|
|
|
|
|
|
void set(typename types::options e) { type_ = e; }
|
|
|
|
|
|
|
|
|
|
void to_json(json_writer& j) const
|
|
|
|
|
{
|
|
|
|
|
j.start_obj();
|
|
|
|
|
switch (type_) {
|
|
|
|
|
case types::release:
|
|
|
|
|
j.write_null("release");
|
|
|
|
|
break;
|
|
|
|
|
case types::setup:
|
|
|
|
|
j.write_fieldname("setup");
|
|
|
|
|
asn1::to_json(j, setup());
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
log_invalid_choice_id(type_, "setup_release_c");
|
|
|
|
|
}
|
|
|
|
|
j.end_obj();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SRSASN_CODE pack(bit_ref& bref) const
|
|
|
|
|
{
|
|
|
|
|
type_.pack(bref);
|
|
|
|
|
switch (type_) {
|
|
|
|
|
case types::release:
|
|
|
|
|
break;
|
|
|
|
|
case types::setup:
|
|
|
|
|
HANDLE_CODE(c.pack(bref));
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
log_invalid_choice_id(type_, "setup_release_c");
|
|
|
|
|
return SRSASN_ERROR_ENCODE_FAIL;
|
|
|
|
|
}
|
|
|
|
|
return SRSASN_SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SRSASN_CODE unpack(cbit_ref& bref)
|
|
|
|
|
{
|
|
|
|
|
types e;
|
|
|
|
|
e.unpack(bref);
|
|
|
|
|
set(e);
|
|
|
|
|
switch (type_) {
|
|
|
|
|
case types::release:
|
|
|
|
|
break;
|
|
|
|
|
case types::setup:
|
|
|
|
|
HANDLE_CODE(c.unpack(bref));
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
log_invalid_choice_id(type_, "setup_release_c");
|
|
|
|
|
return SRSASN_ERROR_DECODE_FAIL;
|
|
|
|
|
}
|
|
|
|
|
return SRSASN_SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elem_type_paramT_& set_setup()
|
|
|
|
|
{
|
|
|
|
|
set(types::setup);
|
|
|
|
|
return c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
types type_;
|
|
|
|
|
elem_type_paramT_ c;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// UAC-BarringPerCat ::= SEQUENCE
|
|
|
|
|
struct uac_barr_per_cat_s {
|
|
|
|
|
uint8_t access_category = 1;
|
|
|
|
|