30 #include <tacopie/network/io_service.hpp> 37 #ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT 47 explicit sentinel(
const std::shared_ptr<network::tcp_client_iface>& tcp_client);
72 sentinel&
send(
const std::vector<std::string>& sentinel_cmd,
const reply_callback_t& callback =
nullptr);
96 template <
class Rep,
class Period>
98 sync_commit(
const std::chrono::duration<Rep, Period>& timeout) {
104 return m_callbacks_running == 0 && m_callbacks.empty();
135 void disconnect(
bool wait_for_removal =
false);
155 std::uint32_t timeout_msecs = 0,
156 const sentinel_disconnect_handler_t& disconnect_handler =
nullptr);
167 const std::string& host,
169 const sentinel_disconnect_handler_t& disconnect_handler =
nullptr,
170 std::uint32_t timeout_msecs = 0);
186 const std::string& name,
189 bool autoconnect =
true);
192 sentinel&
ckquorum(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
193 sentinel&
failover(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
195 sentinel&
master(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
197 sentinel&
monitor(
const std::string& name,
const std::string& ip, std::size_t port, std::size_t quorum,
const reply_callback_t& reply_callback =
nullptr);
198 sentinel&
ping(
const reply_callback_t& reply_callback =
nullptr);
199 sentinel&
remove(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
200 sentinel&
reset(
const std::string& pattern,
const reply_callback_t& reply_callback =
nullptr);
201 sentinel&
sentinels(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
202 sentinel&
set(
const std::string& name,
const std::string& option,
const std::string& value,
const reply_callback_t& reply_callback =
nullptr);
203 sentinel&
slaves(
const std::string& name,
const reply_callback_t& reply_callback =
nullptr);
sentinel & add_sentinel(const std::string &host, std::size_t port)
Definition: redis_connection.hpp:45
std::queue< reply_callback_t > m_callbacks
Definition: sentinel.hpp:286
Definition: sentinel.hpp:206
sentinel & monitor(const std::string &name, const std::string &ip, std::size_t port, std::size_t quorum, const reply_callback_t &reply_callback=nullptr)
sentinel & reset(const std::string &pattern, const reply_callback_t &reply_callback=nullptr)
sentinel_def(const std::string &host, std::size_t port)
ctor
Definition: sentinel.hpp:209
size_t get_port(void) const
Definition: sentinel.hpp:226
sentinel & ping(const reply_callback_t &reply_callback=nullptr)
sentinel & operator=(const sentinel &)=delete
assignment operator
network::redis_connection m_client
Definition: sentinel.hpp:281
sentinel & ckquorum(const std::string &name, const reply_callback_t &reply_callback=nullptr)
void clear_callbacks(void)
void connect(const std::string &host, std::size_t port, const sentinel_disconnect_handler_t &disconnect_handler=nullptr, std::uint32_t timeout_msecs=0)
sentinel & flushconfig(const reply_callback_t &reply_callback=nullptr)
const std::string & get_host(void) const
Definition: sentinel.hpp:220
std::atomic< unsigned int > m_callbacks_running
Definition: sentinel.hpp:306
sentinel_disconnect_handler_t m_disconnect_handler
Definition: sentinel.hpp:291
std::vector< sentinel_def > m_sentinels
Definition: sentinel.hpp:276
sentinel & masters(const reply_callback_t &reply_callback=nullptr)
void disconnect(bool wait_for_removal=false)
std::condition_variable m_sync_condvar
Definition: sentinel.hpp:301
sentinel & send(const std::vector< std::string > &sentinel_cmd, const reply_callback_t &callback=nullptr)
std::function< void(reply &)> reply_callback_t
Definition: sentinel.hpp:61
Definition: sentinel.hpp:34
std::size_t m_port
Definition: sentinel.hpp:237
sentinel & slaves(const std::string &name, const reply_callback_t &reply_callback=nullptr)
void call_disconnect_handler(void)
void connection_disconnect_handler(network::redis_connection &connection)
void connect_sentinel(std::uint32_t timeout_msecs=0, const sentinel_disconnect_handler_t &disconnect_handler=nullptr)
std::mutex m_callbacks_mutex
Definition: sentinel.hpp:296
~sentinel_def(void)=default
dtor
#define __CPP_REDIS_LOG(level, msg)
Definition: logger.hpp:212
sentinel & sync_commit(const std::chrono::duration< Rep, Period > &timeout)
Definition: sentinel.hpp:98
sentinel & sync_commit(void)
sentinel & sentinels(const std::string &name, const reply_callback_t &reply_callback=nullptr)
std::function< void(sentinel &)> sentinel_disconnect_handler_t
Definition: sentinel.hpp:146
bool get_master_addr_by_name(const std::string &name, std::string &host, std::size_t &port, bool autoconnect=true)
std::string m_host
Definition: sentinel.hpp:232
void debug(const std::string &msg, const std::string &file, std::size_t line)
void clear_sentinels(void)
sentinel & failover(const std::string &name, const reply_callback_t &reply_callback=nullptr)
sentinel(void)
ctor & dtor
void connection_receive_handler(network::redis_connection &connection, reply &reply)
Definition: array_builder.hpp:29
sentinel & master(const std::string &name, const reply_callback_t &reply_callback=nullptr)