E2AP Wrapper Implementation
[ric-app/hw.git] / src / xapp-asn / e2ap / e2ap_criticality_diagnostics.hpp
diff --git a/src/xapp-asn/e2ap/e2ap_criticality_diagnostics.hpp b/src/xapp-asn/e2ap/e2ap_criticality_diagnostics.hpp
new file mode 100644 (file)
index 0000000..62772e8
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+==================================================================================
+
+        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 <mdclog/mdclog.h>
+
+#include <string>
+#include <memory>
+#include <sstream>
+#include <vector>
+
+#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<std::vector<CriticalityDiagnosticsIEs>> _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<std::vector<CriticalityDiagnosticsIEs>>(); _count_list = 0;};
+
+       std::vector<CriticalityDiagnosticsIEs> * 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<CriticalityDiagnosticsIEs> &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_ */