(
conststd::shared_ptr<network::tcp_client_iface>& tcp_client);
78 sentinel&
send(
conststd::vector<std::string>& sentinel_cmd,
constreply_callback_t& callback =
nullptr);
102 template<
classRep,
classPeriod>
104 sync_commit(
conststd::chrono::duration<Rep, Period>& timeout) {
107std::unique_lock<std::mutex> lock_callback(m_callbacks_mutex);
108__CPP_REDIS_LOG(debug,
"cpp_redis::sentinel waiting for callbacks to complete");
109 if(!m_sync_condvar.wait_for(lock_callback, timeout, [=] {
110return m_callbacks_running == 0 && m_callbacks.empty();
112__CPP_REDIS_LOG(debug,
"cpp_redis::sentinel finished waiting for callback");
115__CPP_REDIS_LOG(debug,
"cpp_redis::sentinel timed out waiting for callback");
129 sentinel&
add_sentinel(
conststd::string& host, std::size_t port, std::uint32_t timeout_msecs = 0);
142 void disconnect(
boolwait_for_removal =
false);
161 void connect_sentinel(
constsentinel_disconnect_handler_t& disconnect_handler =
nullptr);
172 conststd::string& host,
174 constsentinel_disconnect_handler_t& disconnect_handler =
nullptr,
175std::uint32_t timeout_msecs = 0);
191 conststd::string& name,
194 boolautoconnect =
true);
197 sentinel& ckquorum(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
198 sentinel& failover(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
199 sentinel& flushconfig(
constreply_callback_t& reply_callback =
nullptr);
200 sentinel& master(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
201 sentinel& masters(
constreply_callback_t& reply_callback =
nullptr);
202 sentinel& monitor(
conststd::string& name,
conststd::string& ip, std::size_t port, std::size_t quorum,
constreply_callback_t& reply_callback =
nullptr);
203 sentinel& ping(
constreply_callback_t& reply_callback =
nullptr);
204 sentinel&
remove(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
205 sentinel& reset(
conststd::string& pattern,
constreply_callback_t& reply_callback =
nullptr);
206 sentinel& sentinels(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
207 sentinel&
set(
conststd::string& name,
conststd::string& option,
conststd::string& value,
constreply_callback_t& reply_callback =
nullptr);
208 sentinel& slaves(
conststd::string& name,
constreply_callback_t& reply_callback =
nullptr);
218 sentinel_def(
conststd::string& host, std::size_t port, std::uint32_t timeout_msecs)
219: m_host(host), m_port(port), m_timeout_msecs(timeout_msecs) {}
264std::uint32_t m_timeout_msecs;
271 conststd::vector<sentinel_def>&
get_sentinels(
void)
const;
297 voidcall_disconnect_handler(
void);
302 voidclear_callbacks(
void);
308 voidtry_commit(
void);
314std::vector<sentinel_def> m_sentinels;
324std::queue<reply_callback_t> m_callbacks;
329sentinel_disconnect_handler_t m_disconnect_handler;
334std::mutex m_callbacks_mutex;
339std::condition_variable m_sync_condvar;
344std::atomic<unsigned int> m_callbacks_running;
sentinel & add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)
Definition: redis_connection.hpp:45
Definition: sentinel.hpp:215
size_t get_port(void) const
Definition: sentinel.hpp:235
void set_timeout_msecs(std::uint32_t timeout_msecs)
Definition: sentinel.hpp:248
const std::vector< sentinel_def > & get_sentinels(void) const
sentinel & operator=(const sentinel &)=delete
assignment operator
std::uint32_t get_timeout_msecs(void) const
Definition: sentinel.hpp:241
void connect(const std::string &host, std::size_t port, const sentinel_disconnect_handler_t &disconnect_handler=nullptr, std::uint32_t timeout_msecs=0)
const std::string & get_host(void) const
Definition: sentinel.hpp:229
void disconnect(bool wait_for_removal=false)
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:67
Definition: sentinel.hpp:40
~sentinel_def(void)=default
dtor
sentinel & sync_commit(const std::chrono::duration< Rep, Period > &timeout)
Definition: sentinel.hpp:104
sentinel & sync_commit(void)
std::function< void(sentinel &)> sentinel_disconnect_handler_t
Definition: sentinel.hpp:153
bool get_master_addr_by_name(const std::string &name, std::string &host, std::size_t &port, bool autoconnect=true)
void clear_sentinels(void)
void connect_sentinel(const sentinel_disconnect_handler_t &disconnect_handler=nullptr)
sentinel_def(const std::string &host, std::size_t port, std::uint32_t timeout_msecs)
ctor
Definition: sentinel.hpp:218
sentinel(void)
ctor & dtor
Definition: array_builder.hpp:29
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4