/* ================================================================================== Copyright (c) 2019-2020 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. ================================================================================== */ /* * e2ap_criticality_diagnostics.hpp * * Created on: Oct 29, 2020 * Author: Shraboni Jana */ /* -- ************************************************************** -- copied from 3GPP 38.413 NGAP IEs v15.5.0 -- note: ie-Extensions removed -- ************************************************************** CriticalityDiagnostics ::= SEQUENCE { procedureCode ProcedureCode OPTIONAL, triggeringMessage TriggeringMessage OPTIONAL, procedureCriticality Criticality OPTIONAL, ricRequestorID RICrequestID OPTIONAL, iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, ... } CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item CriticalityDiagnostics-IE-Item ::= SEQUENCE { iECriticality Criticality, iE-ID ProtocolIE-ID, typeOfError TypeOfError, ... } * */ #ifndef SRC_XAPP_ASN_E2AP_E2AP_CRITICALITY_DIAGNOSTICS_HPP_ #define SRC_XAPP_ASN_E2AP_E2AP_CRITICALITY_DIAGNOSTICS_HPP_ #include #include #include #include #include #include "e2ap_consts.hpp" class CriticalityDiagnosticsIEs{ unsigned int typeOferror,iEcriticality; long int ieID; public: CriticalityDiagnosticsIEs():typeOferror(0), ieID(0), iEcriticality(0){}; CriticalityDiagnosticsIEs& set_typeOferror(unsigned int typ_err){this->typeOferror = typ_err; return *this;}; CriticalityDiagnosticsIEs& set_ieID(long int ieID){this->ieID = ieID; return *this;}; CriticalityDiagnosticsIEs& set_iEcriticality(unsigned int crit){this->iEcriticality =crit; return *this;} unsigned int get_typeOferror(){return this->typeOferror;}; unsigned int get_iEcriticality(){return this->iEcriticality;}; long int get_ieID(){return this->ieID;}; }; class E2APCriticalityDiagnostics{ private: long int procedureCode,ricRequestorID, ricInstanceID; unsigned int triggeringMessage,procedureCriticality; bool is_criticalityDiagnostics_list; std::unique_ptr> _ref_list; int _count_list; public: E2APCriticalityDiagnostics():procedureCode(0),ricRequestorID(0),ricInstanceID(0),triggeringMessage(0), procedureCriticality(0),is_criticalityDiagnostics_list(false) { _ref_list = std::make_unique>(); _count_list = 0;}; std::vector * get_list() const {return _ref_list.get();}; int get_list_count() {return _count_list;}; void add(CriticalityDiagnosticsIEs &ieObj) { _ref_list.get()->push_back(ieObj); _count_list++;}; void add(std::vector &obj){ *(_ref_list.get()) = obj; _count_list = obj.size();}; long int get_procedureCode(){return this->procedureCode;}; long int get_ricRequestorID(){return this->ricRequestorID;}; long int get_ricInstanceID(){return this->ricInstanceID;}; unsigned int get_triggeringMessage(){return this->triggeringMessage;}; unsigned int get_procedureCriticality(){return this->procedureCriticality;}; bool get_is_criticalityDiagnostics_list(){if(this->get_list_count()>0) {is_criticalityDiagnostics_list = true;} return this->is_criticalityDiagnostics_list; }; E2APCriticalityDiagnostics& set_procedureCode(long int proc_code){this->procedureCode = proc_code; return *this;}; E2APCriticalityDiagnostics& set_ricRequestorID(long int req_id){this->ricRequestorID = req_id; return *this;}; E2APCriticalityDiagnostics& set_ricInstanceID(long int inst_id){this->ricInstanceID = inst_id; return *this;}; E2APCriticalityDiagnostics& set_triggeringMessage(unsigned int trigMsg){this->triggeringMessage = trigMsg; return *this;}; E2APCriticalityDiagnostics& set_procedureCriticality(unsigned int pvalue){this->triggeringMessage = pvalue; return *this;}; E2APCriticalityDiagnostics& set_iEsCriticalityDiagnostics(unsigned int pvalue){this->triggeringMessage = pvalue; return *this;}; }; #endif /* SRC_XAPP_ASN_E2AP_E2AP_CRITICALITY_DIAGNOSTICS_HPP_ */