X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fprotector-plugin%2Fsliding_window.hpp;fp=src%2Fprotector-plugin%2Fsliding_window.hpp;h=cd668380911228405ca1807c60c5e493ecada72b;hb=b9d7e9c232a4371ddfed51c58e5a57f87b057229;hp=0000000000000000000000000000000000000000;hpb=59f84608ec15c016958a6e0e0ddd813f376c0925;p=ric-app%2Fadmin.git diff --git a/src/protector-plugin/sliding_window.hpp b/src/protector-plugin/sliding_window.hpp new file mode 100644 index 0000000..cd66838 --- /dev/null +++ b/src/protector-plugin/sliding_window.hpp @@ -0,0 +1,51 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 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. + 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 SLIDING_WINDOW_ +#define SLIDING_WINDOW_ + +#include +#include +#include +#include +#include + +#define MIN_WINDOW_SIZE 1 // in seconds +#define MAX_WINDOW_SIZE 604800 // in seconds 1 week + +class sliding_window { + +public: + sliding_window(unsigned int); + bool update_window (unsigned int); + std::string display_window(void); + bool resize_window(unsigned int); + std::string get_error(void) { return error_string ;}; + unsigned int net_events; + void clear(void); + +private: + std::vector sliding_window_; + unsigned int head, tail, window_size_; + std::chrono::time_point leading_edge_; + std::string error_string; +}; + + +#endif