A1 Message Handler update
[ric-app/hw.git] / src / hw_xapp_main.cc
index aa51d20..1771797 100644 (file)
@@ -1,6 +1,6 @@
 /*
 ==================================================================================
-        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.
@@ -51,23 +51,37 @@ int main(int argc, char *argv[]){
        signal(SIGTERM, signalHandler);
 
        //getting the listening port and xapp name info
-       std::string  port = config[XappSettings::SettingName::HW_PORTS];
+       std::string  port = config[XappSettings::SettingName::HW_PORT];
        std::string  name = config[XappSettings::SettingName::XAPP_NAME];
 
        //initialize rmr
-       std::unique_ptr<XappRmr> rmr;
-       rmr = std::make_unique<XappRmr>(port);
-       rmr->xapp_rmr_init();
+       std::unique_ptr<XappRmr> rmr = std::make_unique<XappRmr>(port);
+       rmr->xapp_rmr_init(true);
 
 
-       std::unique_ptr<Xapp> hw_xapp = std::make_unique<Xapp>(std::ref(config),std::ref(*rmr));
-       //hw_xapp->startup();
+       //Create Subscription Handler if Xapp deals with Subscription.
+       std::unique_ptr<SubscriptionHandler> sub_handler = std::make_unique<SubscriptionHandler>();
+
+       //create HelloWorld Xapp Instance.
+       std::unique_ptr<Xapp> hw_xapp;
+       hw_xapp = std::make_unique<Xapp>(std::ref(config),std::ref(*rmr));
+
+       mdclog_write(MDCLOG_INFO, "Created Hello World Xapp Instance");
+
+       sleep(1);
+       //Startup E2 subscription and A1 policy
+       hw_xapp->startup(std::ref(*sub_handler));
+
+
+       //start listener threads and register message handlers.
+       int num_threads = std::stoi(config[XappSettings::SettingName::THREADS]);
+       mdclog_write(MDCLOG_INFO, "Starting Listener Threads. Number of Workers = %d", num_threads);
 
        std::unique_ptr<XappMsgHandler> mp_handler = std::make_unique<XappMsgHandler>(config[XappSettings::SettingName::XAPP_ID]);
-        //hw_xapp->register_handler(std::bind(&XappMsgHandler::operator (),mp_handler.get(),std::placeholders::_1,std::placeholders::_2));
        hw_xapp->start_xapp_receiver(std::ref(*mp_handler));
 
-       //Delete all subscriptions if any based on Xapp Mode.
+       sleep(1);
+
        //xapp->shutdown();
 
        while(1){