reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
repro::RequestContext Class Reference

#include <RequestContext.hxx>

Public Member Functions

 RequestContext (Proxy &proxy, ProcessorChain &requestP, ProcessorChain &responseP, ProcessorChain &targetP)
 
virtual ~RequestContext ()
 
virtual void process (resip::TransactionTerminated &msg)
 
virtual void process (std::unique_ptr< resip::SipMessage > sip)
 
virtual void process (std::unique_ptr< resip::ApplicationMessage > app)
 
virtual void handleSelfAimedStrayAck (resip::SipMessage *sip)
 
virtual bool handleMissingResponseVias (resip::SipMessage *response)
 
virtual void cancelClientTransaction (const resip::Data &tid, const resip::Tokens *reasons=0)
 
resip::SipMessage & getOriginalRequest ()
 Returns the SipMessage associated with the server transaction.
 
const resip::SipMessage & getOriginalRequest () const
 
resip::Data getTransactionId () const
 
resip::Message * getCurrentEvent ()
 Returns the event that we are currently working on.
 
const resip::Message * getCurrentEvent () const
 
void setDigestIdentity (const resip::Data &)
 
const resip::Data & getDigestIdentity () const
 
Proxy & getProxy ()
 
ResponseContext & getResponseContext ()
 
resip::NameAddr & getTopRoute ()
 
bool isTopRouteFlowTupleSet ()
 
resip::Tuple & getTopRouteFlowTuple ()
 
const resip::Data & getDigestRealm ()
 
virtual void send (resip::SipMessage &msg)
 
void sendResponse (resip::SipMessage &response)
 
virtual void forwardAck200 (const resip::SipMessage &ack)
 
void postAck200Done ()
 
void setSessionCreatedEventSent ()
 
void setSessionEstablishedEventSent ()
 
void postTimedMessage (std::unique_ptr< resip::ApplicationMessage > msg, int seconds)
 
resip::KeyValueStore & getKeyValueStore ()
 

Public Attributes

bool mHaveSentFinalResponse
 

Protected Types

typedef std::vector< ProcessorChain::Chain::iterator > ChainIteratorStack
 Stack of iterators used to keep track of where we are in the request processor chain(s) for async processing.
 

Protected Member Functions

bool processRequestInviteTransaction (resip::SipMessage *msg, bool original)
 
bool processRequestNonInviteTransaction (resip::SipMessage *msg, bool original)
 
void processRequestAckTransaction (resip::SipMessage *msg, bool original)
 
void doPostRequestProcessing (resip::SipMessage *msg, bool original)
 
bool processResponseInviteTransaction (resip::SipMessage *msg)
 
bool processResponseNonInviteTransaction (resip::SipMessage *msg)
 
void processResponseAckTransaction (resip::SipMessage *msg)
 
void doPostResponseProcessing (resip::SipMessage *msg)
 
virtual void fixStrictRouterDamage ()
 
virtual void removeTopRouteIfSelf ()
 Pops the topmost route if it's us.
 

Protected Attributes

resip::SipMessage * mOriginalRequest
 
resip::Message * mCurrentEvent
 
resip::SipMessage * mAck200ToRetransmit
 
ProcessorChain & mRequestProcessorChain
 
ProcessorChain & mResponseProcessorChain
 
ProcessorChain & mTargetProcessorChain
 
resip::Data mDigestIdentity
 
int mTransactionCount
 
Proxy & mProxy
 
resip::NameAddr mTopRoute
 
bool mTopRouteFlowTupleSet
 
resip::Tuple mTopRouteFlowTuple
 
std::unique_ptr< ResponseContext > mResponseContext
 
bool mSessionCreatedEventSent
 
bool mSessionEstablishedEventSent
 
resip::KeyValueStore mKeyValueStore
 
ChainIteratorStack mChainIteratorStack
 

Friends

class ResponseContext
 
EncodeStream & operator<< (EncodeStream &strm, const repro::RequestContext &rc)
 

Detailed Description

Definition at line 28 of file RequestContext.hxx.

Member Typedef Documentation

◆ ChainIteratorStack

typedef std::vector<ProcessorChain::Chain::iterator> repro::RequestContext::ChainIteratorStack
protected

Stack of iterators used to keep track of where we are in the request processor chain(s) for async processing.

Definition at line 114 of file RequestContext.hxx.

Constructor & Destructor Documentation

◆ RequestContext()

RequestContext::RequestContext ( Proxy &  proxy,
ProcessorChain &  requestP,
ProcessorChain &  responseP,
ProcessorChain &  targetP 
)

Definition at line 35 of file RequestContext.cxx.

◆ ~RequestContext()

RequestContext::~RequestContext ( )
virtual

Definition at line 56 of file RequestContext.cxx.

Member Function Documentation

◆ cancelClientTransaction()

void RequestContext::cancelClientTransaction ( const resip::Data &  tid,
const resip::Tokens *  reasons = 0 
)
virtual

Definition at line 810 of file RequestContext.cxx.

◆ doPostRequestProcessing()

void RequestContext::doPostRequestProcessing ( resip::SipMessage *  msg,
bool  original 
)
protected

Definition at line 419 of file RequestContext.cxx.

◆ doPostResponseProcessing()

void RequestContext::doPostResponseProcessing ( resip::SipMessage *  msg)
protected

Definition at line 601 of file RequestContext.cxx.

◆ fixStrictRouterDamage()

void RequestContext::fixStrictRouterDamage ( )
protectedvirtual

RjS! When we wire this class for logging, here's a

Definition at line 990 of file RequestContext.cxx.

◆ forwardAck200()

void RequestContext::forwardAck200 ( const resip::SipMessage &  ack)
virtual

Definition at line 816 of file RequestContext.cxx.

◆ getCurrentEvent() [1/2]

resip::Message * RequestContext::getCurrentEvent ( )

Returns the event that we are currently working on.

Use a pointer since users need to check for null

Definition at line 863 of file RequestContext.cxx.

◆ getCurrentEvent() [2/2]

const resip::Message * RequestContext::getCurrentEvent ( ) const

Definition at line 869 of file RequestContext.cxx.

◆ getDigestIdentity()

const resip::Data & RequestContext::getDigestIdentity ( ) const

Definition at line 881 of file RequestContext.cxx.

◆ getDigestRealm()

const resip::Data & RequestContext::getDigestRealm ( )

Definition at line 1083 of file RequestContext.cxx.

◆ getKeyValueStore()

resip::KeyValueStore & repro::RequestContext::getKeyValueStore ( )
inline

Definition at line 78 of file RequestContext.hxx.

◆ getOriginalRequest() [1/2]

resip::SipMessage & RequestContext::getOriginalRequest ( )

Returns the SipMessage associated with the server transaction.

Definition at line 837 of file RequestContext.cxx.

◆ getOriginalRequest() [2/2]

const resip::SipMessage & RequestContext::getOriginalRequest ( ) const

Definition at line 843 of file RequestContext.cxx.

◆ getProxy()

Proxy & RequestContext::getProxy ( )

Definition at line 1053 of file RequestContext.cxx.

◆ getResponseContext()

ResponseContext & RequestContext::getResponseContext ( )

Definition at line 1059 of file RequestContext.cxx.

◆ getTopRoute()

NameAddr & RequestContext::getTopRoute ( )

Definition at line 1065 of file RequestContext.cxx.

◆ getTopRouteFlowTuple()

Tuple & RequestContext::getTopRouteFlowTuple ( )

Definition at line 1077 of file RequestContext.cxx.

◆ getTransactionId()

resip::Data RequestContext::getTransactionId ( ) const

Definition at line 849 of file RequestContext.cxx.

◆ handleMissingResponseVias()

bool RequestContext::handleMissingResponseVias ( resip::SipMessage *  response)
virtual

Definition at line 803 of file RequestContext.cxx.

◆ handleSelfAimedStrayAck()

void RequestContext::handleSelfAimedStrayAck ( resip::SipMessage *  sip)
virtual

Definition at line 797 of file RequestContext.cxx.

◆ isTopRouteFlowTupleSet()

bool RequestContext::isTopRouteFlowTupleSet ( )

Definition at line 1071 of file RequestContext.cxx.

◆ postAck200Done()

void RequestContext::postAck200Done ( )

Definition at line 893 of file RequestContext.cxx.

◆ postTimedMessage()

void RequestContext::postTimedMessage ( std::unique_ptr< resip::ApplicationMessage >  msg,
int  seconds 
)

Definition at line 887 of file RequestContext.cxx.

◆ process() [1/3]

void RequestContext::process ( resip::TransactionTerminated &  msg)
virtual

Definition at line 72 of file RequestContext.cxx.

◆ process() [2/3]

void RequestContext::process ( std::unique_ptr< resip::ApplicationMessage >  app)
virtual

Definition at line 656 of file RequestContext.cxx.

◆ process() [3/3]

void RequestContext::process ( std::unique_ptr< resip::SipMessage >  sip)
virtual

Definition at line 89 of file RequestContext.cxx.

◆ processRequestAckTransaction()

void RequestContext::processRequestAckTransaction ( resip::SipMessage *  msg,
bool  original 
)
protected

Definition at line 363 of file RequestContext.cxx.

◆ processRequestInviteTransaction()

bool RequestContext::processRequestInviteTransaction ( resip::SipMessage *  msg,
bool  original 
)
protected

Definition at line 209 of file RequestContext.cxx.

◆ processRequestNonInviteTransaction()

bool RequestContext::processRequestNonInviteTransaction ( resip::SipMessage *  msg,
bool  original 
)
protected

Definition at line 302 of file RequestContext.cxx.

◆ processResponseAckTransaction()

void repro::RequestContext::processResponseAckTransaction ( resip::SipMessage *  msg)
protected

◆ processResponseInviteTransaction()

bool RequestContext::processResponseInviteTransaction ( resip::SipMessage *  msg)
protected

Definition at line 502 of file RequestContext.cxx.

◆ processResponseNonInviteTransaction()

bool RequestContext::processResponseNonInviteTransaction ( resip::SipMessage *  msg)
protected

Definition at line 553 of file RequestContext.cxx.

◆ removeTopRouteIfSelf()

void RequestContext::removeTopRouteIfSelf ( )
protectedvirtual

Pops the topmost route if it's us.

Definition at line 1010 of file RequestContext.cxx.

◆ send()

void RequestContext::send ( resip::SipMessage &  msg)
virtual

Definition at line 908 of file RequestContext.cxx.

◆ sendResponse()

void RequestContext::sendResponse ( resip::SipMessage &  response)

Definition at line 914 of file RequestContext.cxx.

◆ setDigestIdentity()

void RequestContext::setDigestIdentity ( const resip::Data &  data)

Definition at line 875 of file RequestContext.cxx.

◆ setSessionCreatedEventSent()

void repro::RequestContext::setSessionCreatedEventSent ( )
inline

Definition at line 72 of file RequestContext.hxx.

◆ setSessionEstablishedEventSent()

void repro::RequestContext::setSessionEstablishedEventSent ( )
inline

Definition at line 73 of file RequestContext.hxx.

Friends And Related Symbol Documentation

◆ operator<<

EncodeStream & operator<< ( EncodeStream &  strm,
const repro::RequestContext &  rc 
)
friend

◆ ResponseContext

Definition at line 120 of file RequestContext.hxx.

Member Data Documentation

◆ mAck200ToRetransmit

resip::SipMessage* repro::RequestContext::mAck200ToRetransmit
protected

Definition at line 84 of file RequestContext.hxx.

◆ mChainIteratorStack

ChainIteratorStack repro::RequestContext::mChainIteratorStack
protected

Definition at line 115 of file RequestContext.hxx.

◆ mCurrentEvent

resip::Message* repro::RequestContext::mCurrentEvent
protected

Definition at line 83 of file RequestContext.hxx.

◆ mDigestIdentity

resip::Data repro::RequestContext::mDigestIdentity
protected

Definition at line 98 of file RequestContext.hxx.

◆ mHaveSentFinalResponse

bool repro::RequestContext::mHaveSentFinalResponse

Definition at line 80 of file RequestContext.hxx.

◆ mKeyValueStore

resip::KeyValueStore repro::RequestContext::mKeyValueStore
protected

Definition at line 107 of file RequestContext.hxx.

◆ mOriginalRequest

resip::SipMessage* repro::RequestContext::mOriginalRequest
protected

Definition at line 82 of file RequestContext.hxx.

◆ mProxy

Proxy& repro::RequestContext::mProxy
protected

Definition at line 100 of file RequestContext.hxx.

◆ mRequestProcessorChain

ProcessorChain& repro::RequestContext::mRequestProcessorChain
protected

Definition at line 85 of file RequestContext.hxx.

◆ mResponseContext

std::unique_ptr<ResponseContext> repro::RequestContext::mResponseContext
protected

Definition at line 104 of file RequestContext.hxx.

◆ mResponseProcessorChain

ProcessorChain& repro::RequestContext::mResponseProcessorChain
protected

Definition at line 86 of file RequestContext.hxx.

◆ mSessionCreatedEventSent

bool repro::RequestContext::mSessionCreatedEventSent
protected

Definition at line 105 of file RequestContext.hxx.

◆ mSessionEstablishedEventSent

bool repro::RequestContext::mSessionEstablishedEventSent
protected

Definition at line 106 of file RequestContext.hxx.

◆ mTargetProcessorChain

ProcessorChain& repro::RequestContext::mTargetProcessorChain
protected

Definition at line 87 of file RequestContext.hxx.

◆ mTopRoute

resip::NameAddr repro::RequestContext::mTopRoute
protected

Definition at line 101 of file RequestContext.hxx.

◆ mTopRouteFlowTuple

resip::Tuple repro::RequestContext::mTopRouteFlowTuple
protected

Definition at line 103 of file RequestContext.hxx.

◆ mTopRouteFlowTupleSet

bool repro::RequestContext::mTopRouteFlowTupleSet
protected

Definition at line 102 of file RequestContext.hxx.

◆ mTransactionCount

int repro::RequestContext::mTransactionCount
protected

Definition at line 99 of file RequestContext.hxx.


The documentation for this class was generated from the following files: