X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Fprivate%2Fredis%2Fhiredisepolladapter.hpp;fp=include%2Fprivate%2Fredis%2Fhiredisepolladapter.hpp;h=534e7ae5ff62e531319b5b0a7baf065106dea610;hb=ef2bf51d04aaf01fa0cabdcaf905b23423067662;hp=0000000000000000000000000000000000000000;hpb=edc9b96a441194b571e8d55ec1603b5be0ea52eb;p=ric-plt%2Fsdl.git diff --git a/include/private/redis/hiredisepolladapter.hpp b/include/private/redis/hiredisepolladapter.hpp new file mode 100644 index 0000000..534e7ae --- /dev/null +++ b/include/private/redis/hiredisepolladapter.hpp @@ -0,0 +1,72 @@ +/* + Copyright (c) 2018-2019 Nokia. + + 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 SHAREDDATALAYER_REDIS_HIREDISEPOLLADAPTER_HPP_ +#define SHAREDDATALAYER_REDIS_HIREDISEPOLLADAPTER_HPP_ + +extern "C" +{ + struct redisAsyncContext; +} + +namespace shareddatalayer +{ + class Engine; + + namespace redis + { + class HiredisSystem; + + class HiredisEpollAdapter + { + public: + explicit HiredisEpollAdapter(Engine& engine); + + HiredisEpollAdapter(Engine& engine, HiredisSystem& hiredisSystem); + + HiredisEpollAdapter(const HiredisEpollAdapter&) = delete; + + HiredisEpollAdapter& operator = (const HiredisEpollAdapter&) = delete; + + virtual ~HiredisEpollAdapter(); + + virtual void attach(redisAsyncContext* ac); + + virtual void addRead(); + + virtual void delRead(); + + virtual void addWrite(); + + virtual void delWrite(); + + virtual void cleanUp(); + + private: + Engine& engine; + HiredisSystem& hiredisSystem; + redisAsyncContext* ac; + unsigned int eventState; + bool reading; + bool writing; + bool isMonitoring; + + void eventHandler(unsigned int events); + }; + } +} + +#endif