38 #ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT 48 explicit subscriber(
const std::shared_ptr<network::tcp_client_iface>& tcp_client);
83 typedef std::function<void(const std::string& host, std::size_t port, connect_state status)>
connect_callback_t;
96 const std::string& host =
"127.0.0.1",
97 std::size_t port = 6379,
98 const connect_callback_t& connect_callback =
nullptr,
99 std::uint32_t timeout_msecs = 0,
100 std::int32_t max_reconnects = 0,
101 std::uint32_t reconnect_interval_msecs = 0);
113 const std::string& name,
114 const connect_callback_t& connect_callback =
nullptr,
115 std::uint32_t timeout_msecs = 0,
116 std::int32_t max_reconnects = 0,
117 std::uint32_t reconnect_interval_msecs = 0);
129 void disconnect(
bool wait_for_removal =
false);
157 subscriber&
auth(
const std::string& password,
const reply_callback_t& reply_callback =
nullptr);
182 subscriber&
subscribe(
const std::string& channel,
const subscribe_callback_t& callback,
const acknowledgement_callback_t& acknowledgement_callback =
nullptr);
195 subscriber&
psubscribe(
const std::string& pattern,
const subscribe_callback_t& callback,
const acknowledgement_callback_t& acknowledgement_callback =
nullptr);
230 void add_sentinel(
const std::string& host, std::size_t port);
309 void call_acknowledgement_callback(
const std::string& channel,
const std::map<std::string, callback_holder>& channels, std::mutex& channels_mtx, int64_t nb_chans);
352 void unprotected_subscribe(
const std::string& channel,
const subscribe_callback_t& callback,
const acknowledgement_callback_t& acknowledgement_callback);
362 void unprotected_psubscribe(
const std::string& pattern,
const subscribe_callback_t& callback,
const acknowledgement_callback_t& acknowledgement_callback);
416 std::atomic_bool
m_cancel = ATOMIC_VAR_INIT(
false);
void call_acknowledgement_callback(const std::string &channel, const std::map< std::string, callback_holder > &channels, std::mutex &channels_mtx, int64_t nb_chans)
void clear_sentinels(void)
network::redis_connection m_client
Definition: subscriber.hpp:385
Definition: redis_connection.hpp:45
Definition: subscriber.hpp:36
void sleep_before_next_reconnect_attempt(void)
std::size_t m_redis_port
Definition: subscriber.hpp:372
Definition: subscriber.hpp:256
std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
Definition: subscriber.hpp:83
std::atomic_bool m_reconnecting
Definition: subscriber.hpp:412
void clear_subscriptions(void)
std::mutex m_subscribed_channels_mutex
Definition: subscriber.hpp:439
bool should_reconnect(void) const
void connection_receive_handler(network::redis_connection &connection, reply &reply)
void unprotected_subscribe(const std::string &channel, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback)
void unprotected_psubscribe(const std::string &pattern, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback)
std::int32_t m_max_reconnects
Definition: subscriber.hpp:399
std::uint32_t m_connect_timeout_msecs
Definition: subscriber.hpp:395
std::int32_t m_current_reconnect_attempts
Definition: subscriber.hpp:403
subscriber & psubscribe(const std::string &pattern, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
subscribe_callback_t subscribe_callback
Definition: subscriber.hpp:257
subscriber & commit(void)
std::function< void(reply &)> reply_callback_t
Definition: subscriber.hpp:146
acknowledgement_callback_t acknowledgement_callback
Definition: subscriber.hpp:258
subscriber & operator=(const subscriber &)=delete
assignment operator
connect_callback_t m_connect_callback
Definition: subscriber.hpp:430
std::mutex m_psubscribed_channels_mutex
Definition: subscriber.hpp:435
std::map< std::string, callback_holder > m_subscribed_channels
Definition: subscriber.hpp:421
std::atomic_bool m_cancel
Definition: subscriber.hpp:416
std::string m_redis_server
Definition: subscriber.hpp:368
void handle_psubscribe_reply(const std::vector< reply > &reply)
bool is_reconnecting(void) const
cpp_redis::sentinel m_sentinel
Definition: subscriber.hpp:390
std::function< void(int64_t)> acknowledgement_callback_t
Definition: subscriber.hpp:169
connect_state
Definition: subscriber.hpp:69
void cancel_reconnect(void)
subscriber & auth(const std::string &password, const reply_callback_t &reply_callback=nullptr)
Definition: sentinel.hpp:34
std::uint32_t m_reconnect_interval_msecs
Definition: subscriber.hpp:407
void disconnect(bool wait_for_removal=false)
const sentinel & get_sentinel(void) const
subscriber & punsubscribe(const std::string &pattern)
void handle_acknowledgement_reply(const std::vector< reply > &reply)
std::string m_master_name
Definition: subscriber.hpp:376
subscriber & unsubscribe(const std::string &channel)
reply_callback_t m_auth_reply_callback
Definition: subscriber.hpp:444
void handle_subscribe_reply(const std::vector< reply > &reply)
void add_sentinel(const std::string &host, std::size_t port)
void connect(const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
std::function< void(const std::string &, const std::string &)> subscribe_callback_t
Definition: subscriber.hpp:163
std::string m_password
Definition: subscriber.hpp:380
std::map< std::string, callback_holder > m_psubscribed_channels
Definition: subscriber.hpp:425
bool is_connected(void) const
void connection_disconnection_handler(network::redis_connection &connection)
subscriber & subscribe(const std::string &channel, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
Definition: array_builder.hpp:29