X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fxapp.hpp;h=1f1e7d04763ea76357777c624f17fc26c9246416;hb=21294a186445672e15db465618064642443cc39a;hp=bcfff5b2d4a9e9af80a0e2ac43bc7e920d85aadd;hpb=6df19a4dacb4fcb6edb35a32af9c8f5c07c95e37;p=ric-app%2Fhw.git diff --git a/src/xapp.hpp b/src/xapp.hpp index bcfff5b..1f1e7d0 100644 --- a/src/xapp.hpp +++ b/src/xapp.hpp @@ -1,7 +1,7 @@ /* ================================================================================== - Copyright (c) 2018-2019 AT&T Intellectual Property. + 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. @@ -18,7 +18,7 @@ *//* * xapp.hpp * - * Modified: Mar, 2020 (Shraboni Jana) + * Mar, 2020 (Shraboni Jana) * */ @@ -32,46 +32,67 @@ #include #include #include +#include +#include #include "xapp_rmr.hpp" #include "xapp_sdl.hpp" #include "rapidjson/writer.h" +#include "rapidjson/document.h" +#include "rapidjson/error/error.h" #include "msgs_proc.hpp" #include "subs_mgmt.hpp" #include "xapp_config.hpp" -//#include "rnib/rnibreader.h" - - +extern "C" { +#include "rnib/rnibreader.h" +} using namespace std; using namespace std::placeholders; +using namespace rapidjson; + class Xapp{ public: Xapp(XappSettings &, XappRmr &); - Xapp(XappSettings &, XappRmr &, XappSDL &); + ~Xapp(void); - void startup(); + void stop(void); + + void startup(SubscriptionHandler &); void shutdown(void); - void start_xapp_receiver(); + void start_xapp_receiver(XappMsgHandler &); + void Run(); + + void sdl_data(void); Xapp(Xapp const &)=delete; Xapp& operator=(Xapp const &) = delete; + void register_handler(XappMsgHandler &fn){ + _callbacks.emplace_back(fn); + } + + //getters/setters. + void set_rnib_gnblist(void); + std::vector get_rnib_gnblist(){ return rnib_gnblist; } + private: void startup_subscribe_requests(void ); void shutdown_subscribe_deletes(void); void startup_get_policies(void ); - void sdl_data(void); - void rnib_data(void); + XappRmr * rmr_ref; XappSettings * config_ref; - XappSDL *sdl_ref = NULL; + SubscriptionHandler *subhandler_ref; + std::mutex *xapp_mutex; std::vector xapp_rcv_thread; + std::vector rnib_gnblist; + std::vector _callbacks; };