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

A wrapper for the hiredis C interface with multi-client support. More...

#include <HiredisAdapter.hpp>

Inheritance diagram for HiredisAdapter:
HiredisMultiAdapter

Public Types

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

 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
 
Connection management
virtual void connect ()
 Connect to the Redis server. More...
 
virtual void disconnect ()
 
virtual bool is_connected () const noexcept
 
Redis functions

These functions are abstractions of actual Redis functions which can also be called by using redis-cli.

All functions take the same parameters as the actual Redis functions and behave the same way.

The results are redisReply objects as returned by hiredis. See the hiredis documentation on information about how to interact with these objects.

virtual set_reply_t set (const std::string &key, const std::string &value, const timeout_t expire=0)
 
virtual sadd_reply_t sadd (const std::string &key, const std::string &value, const timeout_t expire=0)
 
virtual void expire (const std::string &key, timeout_t expire)
 
virtual get_reply_t get (const std::string &key)
 
virtual smembers_reply_t smembers (const std::string &key)
 

Static Public Attributes

static constexpr int REDIS_DEFAULT_PORT {6379}
 

Detailed Description

A wrapper for the hiredis C interface with multi-client support.

This class provides a wrapper for interacting with a Redis server using the hiredis library. By using the subclass HiredisMultiAdapter, support for interacting with multiple Redis servers at once is provided.

Responses usually return a smart pointer to the generated redisReply as returned by the hiredis functions.

Definition at line 21 of file HiredisAdapter.hpp.

Member Typedef Documentation

◆ get_reply_t

Definition at line 26 of file HiredisAdapter.hpp.

◆ sadd_reply_t

Definition at line 25 of file HiredisAdapter.hpp.

◆ set_reply_t

using HiredisAdapter::set_reply_t = std::unique_ptr<redisReply, std::function<void(redisReply*)> >

Definition at line 24 of file HiredisAdapter.hpp.

◆ smembers_reply_t

Definition at line 27 of file HiredisAdapter.hpp.

◆ timeout_t

using HiredisAdapter::timeout_t = size_t

Definition at line 28 of file HiredisAdapter.hpp.

Constructor & Destructor Documentation

◆ HiredisAdapter() [1/3]

HiredisAdapter::HiredisAdapter ( const std::string &  srv_ip = "127.0.0.1",
int  port = REDIS_DEFAULT_PORT 
)
inline

Initialize the adapter.

This constructor does not connect to any Redis servers.

Definition at line 37 of file HiredisAdapter.hpp.

◆ HiredisAdapter() [2/3]

HiredisAdapter::HiredisAdapter ( const HiredisAdapter )
delete

◆ HiredisAdapter() [3/3]

HiredisAdapter::HiredisAdapter ( HiredisAdapter &&  )
default

◆ ~HiredisAdapter()

HiredisAdapter::~HiredisAdapter ( )
virtual

Definition at line 5 of file HiredisAdapter.cpp.

Member Function Documentation

◆ connect()

void HiredisAdapter::connect ( )
virtual

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 in HiredisMultiAdapter.

Definition at line 12 of file HiredisAdapter.cpp.

◆ disconnect()

void HiredisAdapter::disconnect ( )
virtual

Reimplemented in HiredisMultiAdapter.

Definition at line 29 of file HiredisAdapter.cpp.

◆ expire()

void HiredisAdapter::expire ( const std::string &  key,
timeout_t  expire 
)
virtual

Reimplemented in HiredisMultiAdapter.

Definition at line 56 of file HiredisAdapter.cpp.

◆ get()

HiredisAdapter::get_reply_t HiredisAdapter::get ( const std::string &  key)
virtual

Reimplemented in HiredisMultiAdapter.

Definition at line 70 of file HiredisAdapter.cpp.

◆ is_connected()

virtual bool HiredisAdapter::is_connected ( ) const
inlinevirtualnoexcept

Reimplemented in HiredisMultiAdapter.

Definition at line 59 of file HiredisAdapter.hpp.

◆ last_expire_has_failed()

virtual bool HiredisAdapter::last_expire_has_failed ( ) const
inlinevirtualnoexcept

Reimplemented in HiredisMultiAdapter.

Definition at line 86 of file HiredisAdapter.hpp.

◆ sadd()

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

Reimplemented in HiredisMultiAdapter.

Definition at line 47 of file HiredisAdapter.cpp.

◆ set()

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

Reimplemented in HiredisMultiAdapter.

Definition at line 38 of file HiredisAdapter.cpp.

◆ smembers()

HiredisAdapter::smembers_reply_t HiredisAdapter::smembers ( const std::string &  key)
virtual

Reimplemented in HiredisMultiAdapter.

Definition at line 77 of file HiredisAdapter.cpp.

Member Data Documentation

◆ REDIS_DEFAULT_PORT

constexpr int HiredisAdapter::REDIS_DEFAULT_PORT {6379}
staticconstexpr

Definition at line 30 of file HiredisAdapter.hpp.


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