#include <ResponseContext.hxx>
Definition at line 29 of file ResponseContext.hxx.
◆ TransactionMap
◆ ~ResponseContext()
| ResponseContext::~ResponseContext |
( |
| ) |
|
|
virtual |
◆ ResponseContext()
◆ addTarget() [1/2]
Adds this Target as a SimpleTarget to the collection of Targets.
- Parameters
-
| target | The NameAdder used to form the Target to add. |
| beginImmediately | Whether to immediately start a transaction for this target. |
- Returns
- tid of the newly added target
- Note
- Targets are not checked for duplicate uris until an attempt is made to begin them.
Definition at line 63 of file ResponseContext.cxx.
◆ addTarget() [2/2]
Adds this Target to the collection of Targets.
- Parameters
-
| target | The Target to add. |
| beginImmediately | Whether to immediately start a transaction for this target. |
| checkDuplicates | Whether to see if target exists already or not |
- Returns
- If beginImmediately=false, true iff the Target was successfully added (could happen if a final response has already been forwarded). If beginImmediately=true, true iff a transaction was successfully started for the Target (could fail due to the presence of a duplicate contact, or when a final response has already been forwarded.)
- Note
- Targets are not checked for duplicate uris until an attempt is made to start them.
Definition at line 73 of file ResponseContext.cxx.
◆ addTargetBatch()
Adds a batch of Targets.
- Note
- RESPONSECONTEXT ASSUMES OWNERSHIP OF THE TARGETS POINTED TO IN THIS LIST!
- Parameters
-
| targets | A list of (sorted) Target*. This list is consumed. |
| highPriority | Whether or not the Target ProccessorChain should prioritize this batch above other batches of the same type. (This is primarily intended to let multiple recursive redirection work properly, but can be used for other purposes.) |
- Returns
- true iff any Targets were added.
- Note
- It is assumed that all of these Targets are the same subclass of Target, and that they are already sorted in the order of their priority. If these assumptions do not hold, things will not break per se, but oddball target processing behavior might result.
Definition at line 123 of file ResponseContext.cxx.
◆ areAllTransactionsTerminated()
| bool ResponseContext::areAllTransactionsTerminated |
( |
| ) |
const |
◆ beginClientTransaction() [1/2]
Begins a client transaction.
- Parameters
-
| serial | The transaction id to start. |
- Returns
- true iff the transaction was started (could fail if there was a duplicate contact)
Definition at line 215 of file ResponseContext.cxx.
◆ beginClientTransaction() [2/2]
◆ beginClientTransactions()
| bool ResponseContext::beginClientTransactions |
( |
| ) |
|
Begins all Candidate client transactions.
- Returns
- true iff any transactions were started
Definition at line 177 of file ResponseContext.cxx.
◆ buildTargetRequest()
◆ cancelActiveClientTransactions()
Cancels all active client transactions.
Does not clear Candidate transactions.
- Parameters
-
| reasons | Optional reasons header to be added to any resulting CANCEL requests. |
- Returns
- true iff any transaction was placed in either the WaitingToCancel or Cancelled state.
Definition at line 242 of file ResponseContext.cxx.
◆ cancelAllClientTransactions()
Cancels all active client transactions.
Also clears Candidate transactions (they are transitioned directly to Terminated).
- Parameters
-
| reasons | Optional reasons header to be added to any resulting CANCEL requests. |
- Returns
- true iff any transaction was placed in either the WaitingToCancel, Cancelled, or Terminated state.
Definition at line 269 of file ResponseContext.cxx.
◆ cancelClientTransaction() [1/2]
Cancels this client transaction if active, or Terminates it if Candidate.
- Parameters
-
| reasons | Optional reasons header to be added to any resulting CANCEL requests. |
- Returns
- true iff this transaction was placed in either the WaitingToCancel, Cancelled, or Terminated state.
Definition at line 315 of file ResponseContext.cxx.
◆ cancelClientTransaction() [2/2]
◆ clearCandidateTransactions()
Removes all Candidate transactions.
- Parameters
-
| reasons | Optional reasons header to be added to any resulting CANCEL requests. |
- Returns
- true iff at least one Candidate transaction was removed.
Definition at line 297 of file ResponseContext.cxx.
◆ forwardBestResponse()
| void ResponseContext::forwardBestResponse |
( |
| ) |
|
|
protectedvirtual |
◆ getCandidateTransactionMap()
Self-explanatory.
- Note
- Can be used to decide which targets should be processed next, although this assumes a great deal of interdependency btw the various processor chains and homogeneity in how the Targets are prioritized, and can be inefficient if there are large numbers of Candidate Targets. A more structured approach exists in the functions dealing with TransactionBatch.
Definition at line 370 of file ResponseContext.cxx.
◆ getInboundFlowToken()
◆ getPriority()
◆ getTarget()
◆ hasActiveTransactions()
| bool ResponseContext::hasActiveTransactions |
( |
| ) |
const |
- Returns
- true iff there are active targets (in state Trying, Proceeding, WaitingForCancel or Cancelled)
Definition at line 382 of file ResponseContext.cxx.
◆ hasCandidateTransactions()
| bool ResponseContext::hasCandidateTransactions |
( |
| ) |
const |
◆ hasTargets()
| bool ResponseContext::hasTargets |
( |
| ) |
const |
◆ hasTerminatedTransactions()
| bool ResponseContext::hasTerminatedTransactions |
( |
| ) |
const |
◆ insertRecordRoute()
◆ isActive()
- Returns
- true iff this target is active (Trying, Proceeding, WaitingForCancel, or Cancelled)
Definition at line 415 of file ResponseContext.cxx.
◆ isCandidate()
◆ isDuplicate()
◆ isTerminated()
◆ needsFlowTokenToWork()
◆ outboundFlowTokenNeeded()
| bool ResponseContext::outboundFlowTokenNeeded |
( |
Target * |
target | ) |
|
|
protected |
◆ processCancel()
◆ processResponse()
◆ processTimerC()
◆ removeClientTransaction()
◆ sendingToSelf()
| bool ResponseContext::sendingToSelf |
( |
Target * |
target | ) |
|
|
protected |
◆ sendRequest()
◆ terminateClientTransaction()
◆ updateTimerC()
◆ operator<<
◆ RequestContext
◆ mActiveTransactionMap
◆ mBestPriority
| int repro::ResponseContext::mBestPriority |
|
protected |
◆ mBestResponse
◆ mCandidateTransactionMap
◆ mCurrentResponseTid
| resip::Data repro::ResponseContext::mCurrentResponseTid |
◆ mIsClientBehindNAT
| bool repro::ResponseContext::mIsClientBehindNAT |
|
protected |
◆ mRequestContext
bwc! This should probably not be private, since these two classes are
Definition at line 226 of file ResponseContext.hxx.
◆ mSecure
| bool repro::ResponseContext::mSecure |
|
protected |
◆ mTargetList
◆ mTerminatedTransactionMap
◆ mTimerCSerial
| std::unordered_map<resip::Data, int> repro::ResponseContext::mTimerCSerial |
|
protected |
◆ mTransactionQueueCollection
| std::list<std::list<resip::Data> > repro::ResponseContext::mTransactionQueueCollection |
◆ TimerCSerialInit
| const int repro::ResponseContext::TimerCSerialInit = 0 |
|
staticprotected |
The documentation for this class was generated from the following files: