1#if !defined(RESIP_RESPONSE_CONTEXT_HXX)
2#define RESIP_RESPONSE_CONTEXT_HXX
Wraps your platform's implementation of hash_map, hash_multimap, and hash_set.
bool operator()(const resip::SipMessage &lhs, const resip::SipMessage &rhs) const
const TransactionMap & getCandidateTransactionMap() const
Self-explanatory.
virtual void forwardBestResponse()
bool isDuplicate(const repro::Target *target) const
void removeClientTransaction(const resip::Data &transactionId)
bool isTerminated(const resip::Data &tid) const
bool needsFlowTokenToWork(const resip::NameAddr &contact) const
std::unique_ptr< resip::SipMessage > buildTargetRequest(Target *target)
bool cancelAllClientTransactions(const resip::Tokens *reasons=0)
Cancels all active client transactions.
int getPriority(const resip::SipMessage &msg)
resip::Data mCurrentResponseTid
resip::Data addTarget(const resip::NameAddr &target, bool beginImmediately=false)
Adds this Target as a SimpleTarget to the collection of Targets.
RequestContext & mRequestContext
bwc! This should probably not be private, since these two classes are
resip::Data getInboundFlowToken(bool doPathInstead)
std::map< resip::Data, repro::Target * > TransactionMap
bool hasTerminatedTransactions() const
bool sendingToSelf(Target *target)
bool hasCandidateTransactions() const
TransactionMap mTerminatedTransactionMap
bool isActive(const resip::Data &tid) const
static const int TimerCSerialInit
void processTimerC(const resip::Data &tid, int serial)
resip::SipMessage mBestResponse
bool addTargetBatch(TargetPtrList &targets, bool highPriority=false)
Adds a batch of Targets.
void sendRequest(resip::SipMessage &request)
void terminateClientTransaction(const resip::Data &tid)
void updateTimerC(const resip::Data &tid)
bool outboundFlowTokenNeeded(Target *target)
bool cancelClientTransaction(const resip::Data &serial, const resip::Tokens *reasons=0)
Cancels this client transaction if active, or Terminates it if Candidate.
void processCancel(const resip::SipMessage &request)
friend EncodeStream & operator<<(EncodeStream &strm, const repro::ResponseContext &rc)
bool beginClientTransaction(const resip::Data &serial)
Begins a client transaction.
std::list< std::list< resip::Data > > mTransactionQueueCollection
Target * getTarget(const resip::Data &serial) const
Self-explanatory.
std::unordered_map< resip::Data, int > mTimerCSerial
void processResponse(resip::SipMessage &response)
bool hasActiveTransactions() const
bool clearCandidateTransactions(const resip::Tokens *reasons=0)
Removes all Candidate transactions.
void insertRecordRoute(resip::SipMessage &outgoing, const resip::Tuple &receivedTransportTuple, const resip::NameAddr &receivedTransportRecordRoute, bool transportSpecificRecordRoute, Target *target, bool doPathInstead=false)
TransactionMap mActiveTransactionMap
TransactionMap mCandidateTransactionMap
resip::ContactList mTargetList
bool beginClientTransactions()
Begins all Candidate client transactions.
bool isCandidate(const resip::Data &tid) const
bool cancelActiveClientTransactions(const resip::Tokens *reasons=0)
Cancels all active client transactions.
bool areAllTransactionsTerminated() const
virtual ~ResponseContext()
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
Represents a SIP message.
Represents a network address.
This Class is used to implement a primitive form of RPC using loose XML formatting.
EncodeStream & operator<<(EncodeStream &os, const repro::Processor &rp)
std::list< Target * > TargetPtrList
dcm! – add UnusedChecking(_enum) below;
std::list< ContactInstanceRecord > ContactList
Replaces STL streams for general encoding purposes.