X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fprotector-plugin%2Fadmission_policy.hpp;h=298352e79a1ebbc550f46742003036528ec58cf3;hb=4e545a8b013e60f2ff59254cb3fe435012d8fe5a;hp=afb584381cb82bb4a29a6cd80f13509bd0fa0680;hpb=dc68642f5676cdd49f3ef92f983b319e21f16afa;p=ric-app%2Fadmin.git diff --git a/src/protector-plugin/admission_policy.hpp b/src/protector-plugin/admission_policy.hpp index afb5843..298352e 100644 --- a/src/protector-plugin/admission_policy.hpp +++ b/src/protector-plugin/admission_policy.hpp @@ -29,6 +29,14 @@ #pragma once #ifndef ADMISSION_CTRL #define ADMISSION_CTRL + +#include +#include +#include +#include + +#include +#include #include #include #include @@ -36,44 +44,45 @@ #include #include +#define MAX_INSTANCES 10 + class admission: virtual public Policy { public: - admission(std::string, std::string, std::string, unsigned int, bool report_only=true); + admission(std::string, std::string, std::string, unsigned int, std::string, bool report_only=true); ~admission(void); protector * get_protector_instance(unsigned int); bool setPolicy(const char *, int , std::string & ); bool getPolicy(const char * , int, std::string & ); std::string getName(void); - int getMetrics(std::string & ) ; - + int getMetrics(std::vector & ) ; + std::string get_error(void) const {return error_string;}; + unsigned int get_num_policies(void) {return policy_table.size();}; private: void storePolicy(void); void init_log(void); void setPolicyVars(void); void instantiate_protector_plugin(bool); + bool load_file(std::string, std::string &) ; + bool load_schema(const std::string & , const std::string & , std::unique_ptr & , std::unique_ptr &); + void process_counters(int , std::string & ); - std::map current_config; - std::map prev_config; std::vector _plugin_instances; + std::map policy_table; + std::map window_policy_vars; + std::map generic_policy_vars; + std::map metric_vars; - std::vector policy_vars; - std::vector set_policy_response; - std::vector get_policy_response; - std::vector metric_responses; - std::vector policy_pointer; - jsonHandler set_policy_req_obj; - jsonHandler set_policy_resp_obj; - - jsonHandler get_policy_req_obj; - jsonHandler get_policy_resp_obj; - - jsonHandler metrics_obj; - - std::vector prev_values; - std::vector curr_values; + std::unique_ptr downstream_schema_ref_, notify_schema_ref_, metrics_schema_ref_; + std::unique_ptr downstream_validator_, notify_validator_, metrics_validator_; + rapidjson::Document notify_message_, metrics_message_; + std::string _xapp_id; + + // stores past count of requests, reject and time stamp + std::map> counters; + std::string error_string; unsigned long int prev_time_stamp; };