9#define RESIPROCATE_SUBSYSTEM resip::Subsystem::TRANSACTION
17 mCongestionManager(0),
20 mRegisteredForTransactionTermination(t == RegisterForTransactionTermination),
21 mRegisteredForConnectionTermination(c == RegisterForConnectionTermination),
22 mRegisteredForKeepAlivePongs(k == RegisterForKeepAlivePongs)
30 mFifo.setDescription(
"TransactionUser::mFifo");
38 mCongestionManager(0),
41 mRegisteredForTransactionTermination(t == RegisterForTransactionTermination),
42 mRegisteredForConnectionTermination(c == RegisterForConnectionTermination),
43 mRegisteredForKeepAlivePongs(k == RegisterForKeepAlivePongs)
47 mFifo.setDescription(
"TransactionUser::mFifo");
68TransactionUser::size()
const
83 for (MessageFilterRuleList::const_iterator i = mRuleList.begin() ;
84 i != mRuleList.end() ; ++i)
86 DebugLog(<<
"TransactionUser::isForMe: TU=" <<
name() <<
", Checking rule... : " << msg.
brief());
89 DebugLog(<<
"TransactionUser::isForMe: TU=" <<
name() <<
", Match! : " << msg.
brief());
93 DebugLog(<<
"TransactionUser::isForMe: TU=" <<
name() <<
", No matching rule found : " << msg.
brief());
100 return mDomainMatcher->isMyDomain(domain);
106 mDomainMatcher->addDomain(domain);
112 mDomainMatcher->removeDomain(domain);
118 mDomainMatcher = domainMatcher;
132 MessageFilterRuleList::iterator it = mRuleList.begin();
133 for(;it!=mRuleList.end();it++)
135 it->setTransactionUser(
this);
142 return mRegisteredForTransactionTermination;
148 return mRegisteredForConnectionTermination;
154 return mRegisteredForKeepAlivePongs;
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
size_type size() const noexcept
Returns the number of bytes in this Data.
The base-class used for message-passing.
virtual Brief brief() const
return a facet for brief encoding of message
Represents a SIP message.
The base-class for an RFC 3261 Transaction User.
TransactionUser(TransactionTermination t=DoNotRegisterForTransactionTermination, ConnectionTermination c=DoNotRegisterForConnectionTermination, KeepAlivePongs k=DoNotRegisterForKeepAlivePongs)
Constructor that specifies whether this TransactionUser needs to hear about the completion of transac...
TimeLimitFifo< Message > mFifo
This TransactionUser's fifo.
void setMessageFilterRuleList(MessageFilterRuleList &rules)
Sets this TransactionUser's MessageFilterRuleList.
bool isRegisteredForConnectionTermination() const
virtual bool isForMe(const SipMessage &msg) const
Returns true iff this TransactionUser should process msg.
void addDomain(const Data &domain)
Adds a domain to the set of domains that this TransactionUser is responsible for.
bool isMyDomain(const Data &domain) const
Returns true iff domain matches one of the domains that this TransactionUser is responsible for.
virtual const Data & name() const =0
Return the name of this TransactionUser.
void post(Message *msg)
Posts a Message to this TransactionUser's fifo.
virtual EncodeStream & encode(EncodeStream &strm) const
Encodes the name of this TransactionUser (as specified by name()), and the current depth of its fifo.
void removeDomain(const Data &domain)
Removes a domain from the set of domains that this TransactionUser is responsible for.
void setDomainMatcher(std::shared_ptr< DomainMatcher > domainMatcher) noexcept
Replaces the default DomainMatcher.
bool isRegisteredForTransactionTermination() const
bool isRegisteredForKeepAlivePongs() const
virtual ~TransactionUser()=0
dcm! – add UnusedChecking(_enum) below;
std::vector< MessageFilterRule > MessageFilterRuleList
EncodeStream & operator<<(EncodeStream &strm, const BaseException &e)