7 #include <boost/foreach.hpp>
17 : connection_(connection), rx_message_trace_cb_(NULL),
18 tx_message_trace_cb_(NULL) {
46 tbb::mutex::scoped_lock lock(
mutex_);
48 WriteReadyCbMap::iterator iter =
map_.begin();
49 WriteReadyCbMap::iterator next = iter;
50 for (; iter !=
map_.end(); iter = next) {
63 tbb::mutex::scoped_lock lock(
mutex_);
85 rxmap_.insert(make_pair(
id, cb));
89 ReceiveCbMap::iterator it =
rxmap_.find(
id);
120 vector<string> receivers;
121 for (
const auto& value :
rxmap_) {
131 map_.insert(make_pair(
id, cb));
183 ReceiveCbMap::iterator iter =
rxmap_.begin();
184 for (; iter !=
rxmap_.end(); ++iter) {
261 const std::string &msg,
272 const std::string &msg,
virtual uint32_t FlapCount() const
virtual bool LastReceived(time_t duration) const
virtual void ProcessXmppMessage(const XmppStanza::XmppMessage *msg)
XmppConnection * connection_
bool RxMessageTrace(const std::string &to_address, int port, int msg_size, const std::string &msg, const XmppStanza::XmppMessage *xmpp_msg)
void HandleStateEvent(xmsm::XmState state)
virtual void UnRegisterWriteReady(xmps::PeerId id)
virtual void RegisterReceive(xmps::PeerId, ReceiveCb)
tbb::atomic< time_t > last_received_
virtual void UnRegisterReceive(xmps::PeerId)
virtual bool Send(const uint8_t *msg, size_t msg_size, xmps::PeerId id, SendReadyCb cb)
TxMessageTraceCb tx_message_trace_cb_
virtual xmps::PeerState GetPeerState() const
virtual uint32_t tx_update() const
virtual uint32_t rx_open() const
size_t ReceiverCount() const
XmppChannelMux(XmppConnection *)
std::vector< std::string > GetReceiverList() const
virtual bool LastSent(time_t duration) const
virtual uint32_t tx_open() const
void RegisterWriteReady(xmps::PeerId, SendReadyCb)
virtual void RegisterReferer(xmps::PeerId)
void WriteReady(const boost::system::error_code &ec)
virtual std::string LastStateName() const
virtual std::string LastStateChangeAt() const
virtual uint32_t rx_update() const
virtual const std::string & FromString() const
bool TxMessageTrace(const std::string &to_address, int port, int msg_size, const std::string &msg, const XmppStanza::XmppMessage *xmpp_msg)
virtual void UnRegisterReferer(xmps::PeerId)
virtual std::string LastFlap() const
virtual std::string AuthType() const
virtual ~XmppChannelMux()
virtual std::string StateName() const
virtual uint32_t tx_keepalive() const
virtual void RegisterRxMessageTraceCallback(RxMessageTraceCb cb)
virtual uint32_t rx_close() const
virtual uint32_t tx_close() const
virtual std::string PeerAddress() const
virtual std::string LastEvent() const
RxMessageTraceCb rx_message_trace_cb_
size_t RefererCount() const
virtual const std::string & ToString() const
virtual int GetTaskInstance() const
virtual void RegisterTxMessageTraceCallback(TxMessageTraceCb cb)
tbb::atomic< time_t > last_sent_
virtual uint32_t rx_keepalive() const
boost::function< void(const XmppStanza::XmppMessage *, xmps::PeerState state) > ReceiveCb
boost::function< bool(const std::string &, int, int, const std::string &, const XmppStanza::XmppMessage *msg) > RxMessageTraceCb
boost::function< void(const boost::system::error_code &)> SendReadyCb
boost::function< bool(const std::string &, int, int, const std::string &, const XmppStanza::XmppMessage *msg) > TxMessageTraceCb
void NotifyConnectionEvent(XmppChannelMux *, xmps::PeerState)
uint32_t tx_update() const
uint32_t rx_keepalive() const
bool Send(const uint8_t *data, size_t size, const std::string *msg_str=NULL)
std::string LastEvent() const
int GetTaskInstance() const
std::string GetXmppAuthenticationType() const
std::string StateName() const
std::string LastStateName() const
const std::string & FromString() const
uint32_t tx_keepalive() const
uint32_t tx_close() const
virtual void RetryDelete()=0
virtual uint32_t flap_count() const =0
XmppStateMachine * state_machine()
xmsm::XmState GetStateMcState() const
std::string endpoint_string() const
std::string LastStateChangeAt() const
const std::string & ToString() const
uint32_t rx_update() const
uint32_t rx_close() const
virtual const std::string last_flap_at() const =0
static const char * kConfigPeer
static const char * kOtherPeer
static const char * kDnsPeer
static const char * kBgpPeer
bool IsGRHelperModeEnabled() const
void NotifyConnectionEvent(XmppChannelMux *, xmps::PeerState)
string PeerIdToName(PeerId id)
#define CHECK_CONCURRENCY(...)
static time_t UTCTimestamp()
bool MatchCallback(string to, xmps::PeerId peer)