WSF
WsfXIO_TrackRequestManager Class Reference

Manages all track requests. Routes incoming track messages to the correct WsfXIO_TrackRequest. More...

#include <WsfXIO_TrackRequest.hpp>

Inheritance diagram for WsfXIO_TrackRequestManager:
Collaboration diagram for WsfXIO_TrackRequestManager:

Public Types

typedef std::pair< GenUniqueId, int > TargetId

Public Member Functions

 WsfXIO_TrackRequestManager (WsfXIO_Interface *aInterfacePtr)
void AddRequest (WsfXIO_TrackRequest *aRequestPtr)
void RemoveRequest (WsfXIO_TrackRequest *aRequestPtr)
void RemoveRequest (int aRequestId)
void RemoveRequest (GenUniqueId &aAppId, int aPlatformIndex)

Protected Types

typedef std::map< TargetId, WsfXIO_TrackRequest * > RequestMap
Protected Types inherited from WsfXIO_RequestManager
using RequestMap = std::map<int, WsfXIO_Request*>
using SessionMap = std::map<WsfXIO_SubscriptionId, WsfXIO_ServiceSession*>

Protected Member Functions

WsfXIO_TrackRequestFindRequest (GenUniqueId &aAppId, int aPlatformIndex)
template<typename T>
void ForwardPacket (T &aPkt)
void RequestCancelled (WsfXIO_Request *aRequestPtr) override
void HandleRawTrack (WsfXIO_RawTrackPkt &aPkt)
void HandleLocalTrack (WsfXIO_LocalTrackPkt &aPkt)
void HandleDropTrack (WsfXIO_TrackDropPkt &aPkt)
Protected Member Functions inherited from WsfXIO_RequestManager
void HandleRequestResponse (WsfXIO_ResponsePkt &aPkt)
void HandleCancel (WsfXIO_SubscriptionCancelPkt &aPkt)
 Handles subscription cancellation notifications.
void HandleDisconnect (WsfXIO_Connection *aConnectionPtr)
 Removes any requests on a lost connection.
 WsfXIO_RequestManager (WsfXIO_Interface *aInterfacePtr)
virtual ~WsfXIO_RequestManager ()
void AddRequest (WsfXIO_Request *aRequestPtr)
void RemoveRequest (WsfXIO_Request *aRequestPtr)
bool RemoveRequest (int aRequestId)
WsfXIO_RequestFindRequest (int aRequestId)
 Returns the request with the given request ID if it exists.
void AddSession (WsfXIO_ServiceSession *aSessionPtr)
 Adds a session to the request manager for the primary goal of routing WsfXIO_ResponsePkt to the session.
void RemoveSession (WsfXIO_ServiceSession *aSessionPtr)
 Removes the session from the request manager.
const SessionMapGetSessions () const
const RequestMapGetRequests () const

Protected Attributes

RequestMap mRequests
Protected Attributes inherited from WsfXIO_RequestManager
UtCallbackHolder mCallbacks
WsfXIO_InterfacemInterfacePtr {nullptr}

Detailed Description

Manages all track requests. Routes incoming track messages to the correct WsfXIO_TrackRequest.

Member Typedef Documentation

◆ RequestMap

◆ TargetId

typedef std::pair<GenUniqueId, int> WsfXIO_TrackRequestManager::TargetId

Constructor & Destructor Documentation

◆ WsfXIO_TrackRequestManager()

WsfXIO_TrackRequestManager::WsfXIO_TrackRequestManager ( WsfXIO_Interface * aInterfacePtr)

Member Function Documentation

◆ AddRequest()

◆ FindRequest()

WsfXIO_TrackRequest * WsfXIO_TrackRequestManager::FindRequest ( GenUniqueId & aAppId,
int aPlatformIndex )
protected

References mRequests.

Referenced by ForwardPacket(), and RemoveRequest().

◆ ForwardPacket()

template<typename T>
void WsfXIO_TrackRequestManager::ForwardPacket ( T & aPkt)
inlineprotected

◆ HandleDropTrack()

void WsfXIO_TrackRequestManager::HandleDropTrack ( WsfXIO_TrackDropPkt & aPkt)
protected

◆ HandleLocalTrack()

void WsfXIO_TrackRequestManager::HandleLocalTrack ( WsfXIO_LocalTrackPkt & aPkt)
protected

◆ HandleRawTrack()

void WsfXIO_TrackRequestManager::HandleRawTrack ( WsfXIO_RawTrackPkt & aPkt)
protected

◆ RemoveRequest() [1/3]

void WsfXIO_TrackRequestManager::RemoveRequest ( GenUniqueId & aAppId,
int aPlatformIndex )

References FindRequest(), and RemoveRequest().

◆ RemoveRequest() [2/3]

void WsfXIO_TrackRequestManager::RemoveRequest ( int aRequestId)

◆ RemoveRequest() [3/3]

void WsfXIO_TrackRequestManager::RemoveRequest ( WsfXIO_TrackRequest * aRequestPtr)

◆ RequestCancelled()

Member Data Documentation

◆ mRequests

RequestMap WsfXIO_TrackRequestManager::mRequests
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved