--- /dev/null
+/*
+# ==================================================================================
+# Copyright (c) 2020 HCL Technologies Limited.
+#
+# 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.
+# ==================================================================================
+*/
+#ifndef _CPPREST_SDK_WRAPPER_H
+#define _CPPREST_SDK_WRAPPER_H
+
+#include<string>
+#include<cpprest/http_client.h>
+#include<cpprest/filestream.h>
+#include<cpprest/uri.h>
+#include<cpprest/json.h>
+#include<sstream>
+#include <cpprest/http_listener.h>
+#include"nlohmann/json.hpp"
+#include<functional>
+#include"RestModel.h"
+#include<thread>
+#include <chrono>
+#include <pthread.h>
+
+
+namespace xapp
+{
+ typedef struct resp
+ {
+ long status_code;
+ nlohmann::json body;
+ //utility::string_t body;
+ }response_t;
+
+ typedef struct oran_resp
+ {
+ long status_code;
+ std::string SubscriptionId;
+ }oresponse_t;
+
+ class cpprestclient
+ {
+ protected:
+ utility::string_t baseUrl;
+ std::string Baseurl;
+ //utility::string_t resp_url=U("http://0.0.0.0:8080/ric/v1/subscriptions/response");
+ std::string resp_url = "http://0.0.0.0:8080/ric/v1/subscriptions/response";//default response url
+ web::http::experimental::listener::http_listener listener;
+ std::thread** t;
+ void response_listener();
+ bool ok_2_run;
+ public:
+ void SetbaseUrl(std::string);
+ std::string getBaseUrl();
+ //O-RAN specific api calls
+ oresponse_t post_subscriptions(const nlohmann::json & json, std::string path);
+ int delete_subscriptions(std::string Id, std::string path);
+ response_t get_subscriptions(std::string path);
+ response_t get_config(std::string path);
+
+ //general api calls
+ virtual response_t do_get(std::string path);
+ virtual response_t do_post(const nlohmann::json & json, std::string path);
+ virtual response_t do_del(std::string Id, std::string path);
+ //virtual response_t do_post(const web::json::value & json, std::string path);
+ cpprestclient(std::string base_url, std::function<void(web::http::http_request)>callback);
+ cpprestclient(std::string base_url,std::string response_url, std::function<void(web::http::http_request)>callback);
+ cpprestclient(std::string base_url);
+ virtual ~cpprestclient(){}
+ //void start_response_listener();
+ void stop_response_listener();
+ };
+
+}
+
+
+
+
+
+#endif