X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Fprivate%2Fredis%2Fhiredisclustersystem.hpp;fp=include%2Fprivate%2Fredis%2Fhiredisclustersystem.hpp;h=9160b1ab7b3f4e293d16d941dc745ae1f69f30b9;hb=ef2bf51d04aaf01fa0cabdcaf905b23423067662;hp=0000000000000000000000000000000000000000;hpb=edc9b96a441194b571e8d55ec1603b5be0ea52eb;p=ric-plt%2Fsdl.git diff --git a/include/private/redis/hiredisclustersystem.hpp b/include/private/redis/hiredisclustersystem.hpp new file mode 100644 index 0000000..9160b1a --- /dev/null +++ b/include/private/redis/hiredisclustersystem.hpp @@ -0,0 +1,66 @@ +/* + 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_HIREDISCLUSTERSYSTEM_HPP_ +#define SHAREDDATALAYER_REDIS_HIREDISCLUSTERSYSTEM_HPP_ + +#include + +namespace shareddatalayer +{ + namespace redis + { + class HiredisClusterSystem + { + public: + HiredisClusterSystem() = default; + + HiredisClusterSystem(const HiredisClusterSystem&) = delete; + + HiredisClusterSystem& operator = (const HiredisClusterSystem&) = delete; + + virtual ~HiredisClusterSystem() = default; + + virtual redisClusterAsyncContext* redisClusterAsyncConnect(const char* addrs, int flags); + + virtual int redisClusterAsyncSetConnectCallback(redisClusterAsyncContext* acc, + redisClusterInstanceConnectCallback* fn); + + virtual int redisClusterAsyncSetDisconnectCallback(redisClusterAsyncContext* acc, + redisClusterInstanceDisconnectCallback* fn); + + virtual int redisClusterAsyncCommandArgv(redisClusterAsyncContext* acc, redisClusterCallbackFn* fn, + void* privdata, int argc, const char** argv, + const size_t* argvlen); + + virtual int redisClusterAsyncCommandArgvWithKey(redisClusterAsyncContext* acc, redisClusterCallbackFn* fn, + void* privdata, const char* key, int keylen, int argc, + const char** argv, const size_t* argvlen); + + virtual void redisAsyncHandleRead(redisAsyncContext* ac); + + virtual void redisAsyncHandleWrite(redisAsyncContext* ac); + + virtual void redisClusterAsyncDisconnect(redisClusterAsyncContext* acc); + + virtual void redisClusterAsyncFree(redisClusterAsyncContext* acc); + + static HiredisClusterSystem& getInstance(); + }; + } +} + +#endif