xrootd
Public Member Functions | Private Attributes | List of all members
XrdCl::SIDManager Class Reference

Handle XRootD stream IDs. More...

#include <XrdClSIDManager.hh>

Collaboration diagram for XrdCl::SIDManager:
Collaboration graph
[legend]

Public Member Functions

 SIDManager ()
 Constructor. More...
 
Status AllocateSID (uint8_t sid[2])
 
void ReleaseSID (uint8_t sid[2])
 Release the SID that is no longer needed. More...
 
void TimeOutSID (uint8_t sid[2])
 Register a SID of a request that timed out. More...
 
bool IsTimedOut (uint8_t sid[2])
 Check if a SID is timed out. More...
 
void ReleaseTimedOut (uint8_t sid[2])
 Release a timed out SID. More...
 
void ReleaseAllTimedOut ()
 Release all timed out SIDs. More...
 
uint32_t NumberOfTimedOutSIDs () const
 Number of timeout sids. More...
 

Private Attributes

std::list< uint16_t > pFreeSIDs
 
std::set< uint16_t > pTimeOutSIDs
 
uint16_t pSIDCeiling
 
XrdSysMutex pMutex
 

Detailed Description

Handle XRootD stream IDs.

Constructor & Destructor Documentation

XrdCl::SIDManager::SIDManager ( )
inline

Constructor.

Member Function Documentation

Status XrdCl::SIDManager::AllocateSID ( uint8_t  sid[2])

Allocate a SID

Parameters
sida two byte array where the allocated SID should be stored
Returns
stOK on success, stError on error

References XrdCl::errNoMoreFreeSIDs, pFreeSIDs, pMutex, pSIDCeiling, and XrdCl::stError.

Referenced by XrdCl::XRootDMsgHandler::RewriteRequestRedirect(), and XrdCl::MessageUtils::SendMessage().

bool XrdCl::SIDManager::IsTimedOut ( uint8_t  sid[2])

Check if a SID is timed out.

References pMutex, and pTimeOutSIDs.

Referenced by XrdCl::XRootDTransport::StreamAction().

uint32_t XrdCl::SIDManager::NumberOfTimedOutSIDs ( ) const
inline

Number of timeout sids.

References pMutex, and pTimeOutSIDs.

void XrdCl::SIDManager::ReleaseAllTimedOut ( )

Release all timed out SIDs.

References pFreeSIDs, pMutex, and pTimeOutSIDs.

Referenced by XrdCl::XRootDTransport::Disconnect().

void XrdCl::SIDManager::ReleaseSID ( uint8_t  sid[2])

Release the SID that is no longer needed.

References pFreeSIDs, and pMutex.

Referenced by XrdCl::XRootDMsgHandler::HandleResponse(), and XrdCl::XRootDMsgHandler::RewriteRequestRedirect().

void XrdCl::SIDManager::ReleaseTimedOut ( uint8_t  sid[2])

Release a timed out SID.

References pFreeSIDs, pMutex, and pTimeOutSIDs.

Referenced by XrdCl::XRootDTransport::StreamAction().

void XrdCl::SIDManager::TimeOutSID ( uint8_t  sid[2])

Register a SID of a request that timed out.

References pMutex, and pTimeOutSIDs.

Referenced by XrdCl::XRootDMsgHandler::HandleResponse().

Member Data Documentation

std::list<uint16_t> XrdCl::SIDManager::pFreeSIDs
private
XrdSysMutex XrdCl::SIDManager::pMutex
mutableprivate
uint16_t XrdCl::SIDManager::pSIDCeiling
private

Referenced by AllocateSID().

std::set<uint16_t> XrdCl::SIDManager::pTimeOutSIDs
private

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