==================================================================================
*/
/*
- * action_e2ap.hpp
+ * e2ap_action.hpp
*
* Created on: Jun 30, 2020
- * Author: sjana
+ * Author: Shraboni Jana
*/
#ifndef XAPP_ASN_REFACTOR_E2AP_ACTION_HPP_
#define XAPP_ASN_REFACTOR_E2AP_ACTION_HPP_
-#define E2SM_SIZE ((int)128)
#include <mdclog/mdclog.h>
#include <memory>
#include <sstream>
#include <vector>
+
+#include "e2ap_consts.hpp"
/*
RICaction-ToBeSetup-Item ::= SEQUENCE {
ricActionID RICactionID,
public:
class ActionIEs{
private:
- bool is_ricSubsequentAction;
+ bool is_ricSubsequentAction, is_ricActionDefinition;
unsigned int ricActionType, ricActionID,ricSubsequentActionType,ricTimeToWait;
- unsigned char ricActionDefinition[E2SM_SIZE];
- size_t ricActionDefinition_size = E2SM_SIZE;
+ unsigned char ricActionDefinition[IE_SIZE];
+ size_t ricActionDefinition_size = IE_SIZE;
public:
- ActionIEs():ricActionType(0),ricActionID(0),ricSubsequentActionType(0),ricTimeToWait(0),is_ricSubsequentAction(false){ };
+ ActionIEs():ricActionType(0),ricActionID(0),ricSubsequentActionType(0),ricTimeToWait(0),is_ricSubsequentAction(false),is_ricActionDefinition(false){ };
ActionIEs& set_ricSubsequentAction(int subsequentActionType, int timeToWait){
is_ricSubsequentAction = true;
ricSubsequentActionType = subsequentActionType;
} else {
mdclog_write(MDCLOG_INFO, "Successfully encoded: %s","RIC Action Definition");
}
+ this->is_ricActionDefinition = true;
return *this;
};
ActionIEs& set_ricActionID(int actionID){ricActionID = actionID; return *this;};
bool get_is_ricSubsequentAction() { return this->is_ricSubsequentAction; };
int get_ricSubsequentActionType(){return this->ricSubsequentActionType; }
int get_ricTimeToWait(){ return this->ricTimeToWait; }
+ bool get_is_ricActionDefinition(){return this->is_ricActionDefinition;};
void* get_ricActionDefinition(){ return this->ricActionDefinition; };
size_t get_ricActionDefinition_size(){return this->ricActionDefinition_size; };
int _count_list;
};
+/*RICaction-Admitted-Item ::= SEQUENCE {
+ ricActionID RICactionID,
+ ...
+}
+
+
+RICaction-NotAdmitted-Item ::= SEQUENCE {
+ ricActionID RICactionID,
+ cause Cause,
+ ...
+}*/
+
+class RICactionAdmittedList{
+
+public:
+ class RICactionAdmittedItemIEs{
+ private:
+ long int ricActionID;
+ public:
+ RICactionAdmittedItemIEs(void):ricActionID(0){};
+ RICactionAdmittedItemIEs& set_ricActionID(long int actID){ricActionID = actID; return *this;};
+ long int get_ricActionID(){return this->ricActionID;};
+
+ };
+ RICactionAdmittedList(){ _ref_list = std::make_unique<std::vector<RICactionAdmittedItemIEs>>(); _count_list = 0;};
+
+ std::vector<RICactionAdmittedItemIEs> * get_list() const {return _ref_list.get();};
+ int get_list_count() {return _count_list;};
+
+ void add(RICactionAdmittedItemIEs &actionObj) { _ref_list.get()->push_back(actionObj); _count_list++;};
+private:
+
+ std::unique_ptr<std::vector<RICactionAdmittedItemIEs>> _ref_list;
+ int _count_list;
+
+};
+
+class RICactionNotAdmittedList{
+ public:
+ class RICactionNotAdmittedItemIEs{
+ private:
+ long int ricActionID;
+ unsigned int ricCause, ricSubCause;
+ public:
+ RICactionNotAdmittedItemIEs(void):ricActionID(0),ricCause(0),ricSubCause(0){};
+ RICactionNotAdmittedItemIEs& set_ricCause(long int cause){ricCause = cause; return *this;};
+ RICactionNotAdmittedItemIEs& set_ricSubCause(long int subcause){ricSubCause = subcause; return *this;};
+ RICactionNotAdmittedItemIEs& set_ricActionID(long int actID){ricActionID = actID; return *this;};
+
+ long int get_ricCause(){return this->ricCause;};
+ long int get_ricSubCause(){return this->ricSubCause;};
+ long int get_ricActionID(){return this->ricActionID;};
+ };
+ RICactionNotAdmittedList(){ _ref_list = std::make_unique<std::vector<RICactionNotAdmittedItemIEs>>(); _count_list = 0;};
+
+ std::vector<RICactionNotAdmittedItemIEs> * get_list() const {return _ref_list.get();};
+ int get_list_count() {return _count_list;};
+
+ void add(RICactionNotAdmittedItemIEs &actionObj) { _ref_list.get()->push_back(actionObj); _count_list++;};
+private:
+
+ std::unique_ptr<std::vector<RICactionNotAdmittedItemIEs>> _ref_list;
+ int _count_list;
+
+};
+
#endif /* XAPP_ASN_REFACTOR_E2AP_ACTION_HPP_ */