kea-custom-hooks
FeM custom hooks libraries for Kea DHCP
Public Types | Public Member Functions | List of all members
HiredisMultiAdapter Class Reference

Wrapper around HiredisAdapter for multi-client support. More...

#include <HiredisMultiAdapter.hpp>

Inheritance diagram for HiredisMultiAdapter:
HiredisAdapter

Public Types

using adapter_ptr_t = HiredisAdapter *
 
using adapter_refw_t = std::reference_wrapper< HiredisAdapter >
 
- Public Types inherited from HiredisAdapter
using set_reply_t = std::unique_ptr< redisReply, std::function< void(redisReply *)> >
 
using sadd_reply_t = set_reply_t
 
using get_reply_t = set_reply_t
 
using smembers_reply_t = set_reply_t
 
using timeout_t = size_t
 

Public Member Functions

 HiredisMultiAdapter ()=default
 
template<typename... U>
 HiredisMultiAdapter (HiredisAdapter &a, U &... others)
 
 HiredisMultiAdapter (const std::vector< adapter_refw_t > &given_adapters)
 
 HiredisMultiAdapter (std::vector< HiredisAdapter > &given_adapters)
 
 HiredisMultiAdapter (const HiredisMultiAdapter &)=delete
 
 ~HiredisMultiAdapter ()=default
 
void connect () override
 Connect to the Redis server. More...
 
void disconnect () override
 
bool is_connected () const noexcept override
 
set_reply_t set (const std::string &key, const std::string &value, const timeout_t expire=0) override
 
sadd_reply_t sadd (const std::string &key, const std::string &value, const timeout_t expire=0) override
 
void expire (const std::string &key, timeout_t expire) override
 
get_reply_t get (const std::string &key) override
 
smembers_reply_t smembers (const std::string &key) override
 
bool last_expire_has_failed () const noexcept override
 
size_t adapter_amount () const noexcept
 
- Public Member Functions inherited from HiredisAdapter
 HiredisAdapter (const std::string &srv_ip="127.0.0.1", int port=REDIS_DEFAULT_PORT)
 Initialize the adapter. More...
 
 HiredisAdapter (const HiredisAdapter &)=delete
 
 HiredisAdapter (HiredisAdapter &&)=default
 
virtual ~HiredisAdapter ()
 
virtual bool last_expire_has_failed () const noexcept
 

Additional Inherited Members

- Static Public Attributes inherited from HiredisAdapter
static constexpr int REDIS_DEFAULT_PORT {6379}
 

Detailed Description

Wrapper around HiredisAdapter for multi-client support.

This class adds support for maintaining and using multiple Redis connections at once. The respective HiredisAdapter instances must be created and maintained somewhere else. This wrapper only executes every method on all of the clients that have been added. Thus, the behavior is roughly the same as for a normal HiredisAdapter.

Definition at line 20 of file HiredisMultiAdapter.hpp.

Member Typedef Documentation

◆ adapter_ptr_t

Definition at line 23 of file HiredisMultiAdapter.hpp.

◆ adapter_refw_t

using HiredisMultiAdapter::adapter_refw_t = std::reference_wrapper<HiredisAdapter>

Definition at line 24 of file HiredisMultiAdapter.hpp.

Constructor & Destructor Documentation

◆ HiredisMultiAdapter() [1/5]

HiredisMultiAdapter::HiredisMultiAdapter ( )
default

◆ HiredisMultiAdapter() [2/5]

template<typename... U>
HiredisMultiAdapter::HiredisMultiAdapter ( HiredisAdapter a,
U &...  others 
)
inline

Definition at line 28 of file HiredisMultiAdapter.hpp.

◆ HiredisMultiAdapter() [3/5]

HiredisMultiAdapter::HiredisMultiAdapter ( const std::vector< adapter_refw_t > &  given_adapters)
inline

Definition at line 32 of file HiredisMultiAdapter.hpp.

◆ HiredisMultiAdapter() [4/5]

HiredisMultiAdapter::HiredisMultiAdapter ( std::vector< HiredisAdapter > &  given_adapters)
inline

Definition at line 38 of file HiredisMultiAdapter.hpp.

◆ HiredisMultiAdapter() [5/5]

HiredisMultiAdapter::HiredisMultiAdapter ( const HiredisMultiAdapter )
delete

◆ ~HiredisMultiAdapter()

HiredisMultiAdapter::~HiredisMultiAdapter ( )
default

Member Function Documentation

◆ adapter_amount()

size_t HiredisMultiAdapter::adapter_amount ( ) const
inlinenoexcept

Definition at line 65 of file HiredisMultiAdapter.hpp.

◆ connect()

void HiredisMultiAdapter::connect ( )
overridevirtual

Connect to the Redis server.

This method connects to the Redis server and must be called before any other methods may be called. Only after a successful connection may other functions be called (check with is_connected()).

Exceptions
HiredisExceptionon connection failure

Reimplemented from HiredisAdapter.

Definition at line 3 of file HiredisMultiAdapter.cpp.

◆ disconnect()

void HiredisMultiAdapter::disconnect ( )
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 10 of file HiredisMultiAdapter.cpp.

◆ expire()

void HiredisMultiAdapter::expire ( const std::string &  key,
timeout_t  expire 
)
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 46 of file HiredisMultiAdapter.cpp.

◆ get()

HiredisAdapter::get_reply_t HiredisMultiAdapter::get ( const std::string &  key)
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 53 of file HiredisMultiAdapter.cpp.

◆ is_connected()

bool HiredisMultiAdapter::is_connected ( ) const
overridevirtualnoexcept

Reimplemented from HiredisAdapter.

Definition at line 17 of file HiredisMultiAdapter.cpp.

◆ last_expire_has_failed()

bool HiredisMultiAdapter::last_expire_has_failed ( ) const
overridevirtualnoexcept

Reimplemented from HiredisAdapter.

Definition at line 71 of file HiredisMultiAdapter.cpp.

◆ sadd()

HiredisAdapter::sadd_reply_t HiredisMultiAdapter::sadd ( const std::string &  key,
const std::string &  value,
const timeout_t  expire = 0 
)
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 37 of file HiredisMultiAdapter.cpp.

◆ set()

HiredisAdapter::set_reply_t HiredisMultiAdapter::set ( const std::string &  key,
const std::string &  value,
const timeout_t  expire = 0 
)
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 27 of file HiredisMultiAdapter.cpp.

◆ smembers()

HiredisAdapter::smembers_reply_t HiredisMultiAdapter::smembers ( const std::string &  key)
overridevirtual

Reimplemented from HiredisAdapter.

Definition at line 62 of file HiredisMultiAdapter.cpp.


The documentation for this class was generated from the following files: