+++ /dev/null
-/*****************************************************************************
-# Copyright 2019 AT&T Intellectual Property *
-# *
-# Licensed under the Apache License, Version 2.0 (the "License"); *
-# you may not use this file except in compliance with the License. *
-# You may obtain a copy of the License at *
-# *
-# http://www.apache.org/licenses/LICENSE-2.0 *
-# *
-# Unless required by applicable law or agreed to in writing, software *
-# distributed under the License is distributed on an "AS IS" BASIS, *
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
-# See the License for the specific language governing permissions and *
-# limitations under the License. *
-# *
-******************************************************************************/
-
-#pragma once
-
-#include "asn/asn.hpp"
-static_assert(ASN_API_VERSION_MAJOR == 5, "re-generate the ASN parser's code using 'make regen-asn' (do not use -j option)");
-
-
-/*
-Criticality ::= ENUMERATED { reject, ignore, notify }
-*/
-
-struct Criticality : asn::enumerated<3, 0, false>
-{
- static constexpr const char* name() {return "Criticality";}
- using parent_t = asn::enumerated<3, 0, false>;
- typedef enum {
- reject
- ,ignore
- ,notify
- } index_t;
-
-};
-
-/*
-Presence ::= ENUMERATED { optional, conditional, mandatory }
-*/
-
-struct Presence : asn::enumerated<3, 0, false>
-{
- static constexpr const char* name() {return "Presence";}
- using parent_t = asn::enumerated<3, 0, false>;
- typedef enum {
- optional
- ,conditional
- ,mandatory
- } index_t;
-
-};
-
-/*
-maxPrivateIEs INTEGER ::= 65535
-*/
-
-constexpr int64_t maxPrivateIEs = 65535;
-/*
-PrivateIE-ID ::= CHOICE {
- local INTEGER (0.. maxPrivateIEs),
- global OBJECT IDENTIFIER
-}
-*/
-
-struct PrivateIE_ID : asn::choice<2, 0, false>
-{
- static constexpr const char* name() {return "PrivateIE-ID";}
- using parent_t = asn::choice<2, 0, false>;
- index_type get_index() const {return index;}
- ~PrivateIE_ID() {clear();}
- struct local_t : asn::integer<>
- {
- using constraint_t = asn::constraints<false,asn::span<0, maxPrivateIEs >>;
- static constexpr const char* name() {return "local_t";}
- using parent_t = asn::integer<>;
-
- };
-
- struct global_t : asn::oid
- {
- static constexpr const char* name() {return "global_t";}
- using parent_t = asn::oid;
-
- };
- void clear()
- {
- switch(get_index())
- {
- case 1: var.destroy<local_t>(); break;
- case 2: var.destroy<global_t>(); break;
- }
- index = 0;
- base::clear();
- }
- template<typename V> bool decode(size_t idx, V& v)
- {
- clear();
- switch(idx)
- {
- case 1: set_index(1); return v(var.build<local_t>());
- case 2: set_index(2); return v(var.build<global_t>());
- }
- return false;
-
- }
- template<typename V> bool encode(V& v) const
- {
- switch(get_index())
- {
- case 1: return v(var.as<local_t>());
- case 2: return v(var.as<global_t>());
- }
- return false;
- }
- template<typename V> static inline void enumerate(V& v)
- {
- v.template operator()<local_t>(1);
- v.template operator()<global_t>(2);
-
- }
- local_t& select_local() { if(get_index() != 1) { clear(); set_index(1); return var.build<local_t>();} return var.as<local_t>();}
- local_t const* get_local() const { if(get_index() == 1) { return &var.as<local_t>();} return nullptr; }
- global_t& select_global() { if(get_index() != 2) { clear(); set_index(2); return var.build<global_t>();} return var.as<global_t>();}
- global_t const* get_global() const { if(get_index() == 2) { return &var.as<global_t>();} return nullptr; }
- private:
- void set_index(index_type i) {index = i; base::set();}
- union union_type
- {
- char dummy1[sizeof(local_t)];
- char dummy2[sizeof(global_t)];
-
- };
- asn::variant<sizeof(union_type)> var;
- index_type index {0};
-};
-/*
-ProcedureCode ::= INTEGER (0..255)
-*/
-
-struct ProcedureCode : asn::integer<>
-{
- using constraint_t = asn::constraints<false,asn::span<0, 255>>;
- static constexpr const char* name() {return "ProcedureCode";}
- using parent_t = asn::integer<>;
-
-};
-
-/*
-maxProtocolIEs INTEGER ::= 65535
-*/
-
-constexpr int64_t maxProtocolIEs = 65535;
-/*
-ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
-*/
-
-struct ProtocolIE_ID : asn::integer<>
-{
- using constraint_t = asn::constraints<false,asn::span<0, maxProtocolIEs >>;
- static constexpr const char* name() {return "ProtocolIE-ID";}
- using parent_t = asn::integer<>;
-
-};
-
-/*
-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
-*/
-
-struct TriggeringMessage : asn::enumerated<3, 0, false>
-{
- static constexpr const char* name() {return "TriggeringMessage";}
- using parent_t = asn::enumerated<3, 0, false>;
- typedef enum {
- initiating_message
- ,successful_outcome
- ,unsuccessful_outcome
- } index_t;
-
-};
-
-/*
-maxProtocolExtensions INTEGER ::= 65535
-*/
-
-constexpr int64_t maxProtocolExtensions = 65535;