X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fxapp-asn%2Fe2sm%2Fe2sm_subscription.hpp;fp=src%2Fxapp-asn%2Fe2sm%2Fe2sm_subscription.hpp;h=8e56c73cdccedcf6ce447a19e13ac6d77a1d21c1;hb=28b894594573ab1e7087ed8fb50b208d7b135b07;hp=6d046a2d217554bc5ff3ec2f01f1ccddec7e7783;hpb=6d677813b02deda27db8039ec0de86a5332caa1f;p=ric-app%2Fhw.git diff --git a/src/xapp-asn/e2sm/e2sm_subscription.hpp b/src/xapp-asn/e2sm/e2sm_subscription.hpp index 6d046a2..8e56c73 100644 --- a/src/xapp-asn/e2sm/e2sm_subscription.hpp +++ b/src/xapp-asn/e2sm/e2sm_subscription.hpp @@ -17,20 +17,22 @@ ================================================================================== */ /* - * e2sm_control.cc + * e2sm_subscription.hpp * - * Created on: Apr 30, 2020 - * Author: Shraboni Jana + * Created on: Jun 30, 2020 + * Author: sjana */ -/* Classes to handle E2 service model based on e2sm-HelloWorld-v001.asn */ -#ifndef E2SM_ -#define E2SM_ +#ifndef XAPP_ASN_REFACTOR_E2SM_SUBSCRIPTION_HPP_ +#define XAPP_ASN_REFACTOR_E2SM_SUBSCRIPTION_HPP_ + +#include +#include +#include #include -#include +#include #include -#include #include #include @@ -38,37 +40,86 @@ #include #include #include +#include -/* builder class for E2SM event trigger definition */ - -class e2sm_subscription { +class HWEventTriggerDefinition { public: - e2sm_subscription(void); - ~e2sm_subscription(void); + HWEventTriggerDefinition(void); + ~HWEventTriggerDefinition(void); + + bool encode(unsigned char *, size_t *); + std::string get_error (void) const {return _error_string ;}; + int get_triggerNature(){return this->_triggerNature;}; + HWEventTriggerDefinition& set_triggerNature(int trigger){ this->_triggerNature = trigger; return *this;}; + +private: + + E2SM_HelloWorld_EventTriggerDefinition_t * _event_trigger; // used for encoding + E2SM_HelloWorld_EventTriggerDefinition_Format1_t _event_fmt1; + int _triggerNature; - bool set_fields(E2SM_HelloWorld_EventTriggerDefinition_t *, e2sm_subscription_helper &); - bool set_fields(E2SM_HelloWorld_ActionDefinition_t *, e2sm_subscription_helper &); + size_t _errbuf_len = 128; + char _errbuf[128]; + std::string _error_string; +}; - bool encode_event_trigger(unsigned char *, size_t *, e2sm_subscription_helper &); - bool encode_action_defn(unsigned char*, size_t *, e2sm_subscription_helper &); +class HWActionDefinition { - std::string get_error (void) const {return error_string ;}; +public: + HWActionDefinition(void); + ~HWActionDefinition(void); + class RANParamIEs{ + + private: + long int _param_id; + unsigned char _param_name[20]; + size_t _param_name_size; + int _param_test; + unsigned char _param_value[20]; + size_t _param_value_size; + public: + RANParamIEs(void):_param_id(0),_param_name_size(0), _param_test(0),_param_value_size(0){}; + RANParamIEs& set_param_id(int param_id) {_param_id = param_id; return *this;}; + RANParamIEs& set_param_name(std::string param_name) { _param_name_size = strlen(param_name.c_str()); + strncpy((char*)_param_name,param_name.c_str(),_param_name_size); return *this;}; + RANParamIEs& set_param_test(int param_test) {_param_test = param_test; return *this;}; + RANParamIEs& set_param_value(std::string param_value) {_param_value_size = strlen(param_value.c_str()); + strncpy((char*)_param_value,param_value.c_str(),_param_value_size); return *this;}; + + int get_param_id(){return this->_param_id;}; + int get_param_test(){return this->_param_test;}; + unsigned char* get_param_name(){return this->_param_name;}; + int get_param_name_size(){return this->_param_name_size;}; + unsigned char* get_param_value(){return this->_param_value;}; + int get_param_value_size(){return this->_param_value_size;}; + + + }; + std::vector * get_list() const {return _param_list.get();}; + int get_list_count() const {return _count_list;}; + bool encode(unsigned char *, size_t *); + std::string get_error (void) const {return _error_string ;}; + void add(RANParamIEs ie_obj){ + _param_list.get()->push_back(ie_obj); + _count_list ++; + } private: + std::unique_ptr> _param_list; + int _count_list; + E2SM_HelloWorld_ActionDefinition_t* _action_defn; + E2SM_HelloWorld_ActionDefinition_Format1_t _action_fmt1; + RANparameter_Item_t* _ranparam_ie; - E2SM_HelloWorld_EventTriggerDefinition_t * event_trigger; // used for encoding - E2SM_HelloWorld_ActionDefinition_t* action_defn; - E2SM_HelloWorld_EventTriggerDefinition_Format1_t event_fmt1; - E2SM_HelloWorld_ActionDefinition_Format1_t actn_fmt1; - RANparameter_Item_t *ran_param; + size_t _errbuf_len = 128; + char _errbuf[128]; + std::string _error_string; + bool setfields(E2SM_HelloWorld_ActionDefinition_t *); - size_t errbuf_len; - char errbuf[128]; - std::string error_string; -}; +}; -#endif +#endif /* XAPP_ASN_REFACTOR_E2SM_SUBSCRIPTION_HPP_ */