xrootd
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
XrdSsiServReal Class Reference

#include <XrdSsiServReal.hh>

Inheritance diagram for XrdSsiServReal:
Inheritance graph
[legend]
Collaboration diagram for XrdSsiServReal:
Collaboration graph
[legend]

Public Member Functions

void ProcessRequest (XrdSsiRequest &reqRef, XrdSsiResource &resRef)
 Process a request; client-side or server-side.
 
void Recycle (XrdSsiSessReal *sObj, bool reuse)
 
bool Stop (bool immed=false)
 Stop the client-side service. This is never called server-side.
 
void StopReuse (const char *resKey)
 
 XrdSsiServReal (const char *contact, int hObj)
 
 ~XrdSsiServReal ()
 
- Public Member Functions inherited from XrdSsiService
int GetVersion ()
 
virtual bool Attach (XrdSsiErrInfo &eInfo, const std::string &handle, XrdSsiRequest &reqRef, XrdSsiResource *resP=0)
 Attach to a backgrounded request.
 
virtual bool Prepare (XrdSsiErrInfo &eInfo, const XrdSsiResource &rDesc)
 Prepare for processing subsequent resource request.
 
 XrdSsiService ()
 Constructor.
 

Private Member Functions

XrdSsiSessRealAlloc (const char *sName, int uent, bool hold)
 
bool GenURL (XrdSsiResource *rP, char *buff, int blen, int uEnt)
 
bool ResReuse (XrdSsiRequest &reqRef, XrdSsiResource &resRef, std::string &resKey)
 

Private Attributes

std::map< std::string, XrdSsiSessReal * > resCache
 
XrdSysMutex rcMutex
 
char * manNode
 
XrdSysMutex myMutex
 
XrdSsiSessRealfreeSes
 
int freeCnt
 
int freeMax
 
int actvSes
 
bool doStop
 

Additional Inherited Members

- Static Public Attributes inherited from XrdSsiService
static const int SsiVersion = 0x00020000
 
- Protected Member Functions inherited from XrdSsiService
virtual ~XrdSsiService ()
 Destructor. The service object cannot be explicitly deleted. Use Stop().
 

Constructor & Destructor Documentation

◆ XrdSsiServReal()

XrdSsiServReal::XrdSsiServReal ( const char *  contact,
int  hObj 
)
inline

◆ ~XrdSsiServReal()

XrdSsiServReal::~XrdSsiServReal ( )

Member Function Documentation

◆ Alloc()

XrdSsiSessReal * XrdSsiServReal::Alloc ( const char *  sName,
int  uent,
bool  hold 
)
private

◆ GenURL()

bool XrdSsiServReal::GenURL ( XrdSsiResource rP,
char *  buff,
int  blen,
int  uEnt 
)
private

◆ ProcessRequest()

void XrdSsiServReal::ProcessRequest ( XrdSsiRequest reqRef,
XrdSsiResource resRef 
)
virtual

Process a request; client-side or server-side.

When a client calls ProcessRequest() the same method is called server-side with the same parameters that the client specified except for timeOut which is always set to zero server-side.

Parameters
reqRefReference to the Request object that describes the request.
resRefReference to the Resource object that describes the resource that the request will be using.

All results are returned via the request object callback methods. For background queries, the XrdSsiRequest::ProcessResponse() is called with a response type of isHandle when the request is handed off to the endpoint for execution (see XrdSsiRequest::SetDetachTTL).

Implements XrdSsiService.

◆ Recycle()

void XrdSsiServReal::Recycle ( XrdSsiSessReal sObj,
bool  reuse 
)

◆ ResReuse()

bool XrdSsiServReal::ResReuse ( XrdSsiRequest reqRef,
XrdSsiResource resRef,
std::string &  resKey 
)
private

◆ Stop()

bool XrdSsiServReal::Stop ( bool  immed = false)
virtual

Stop the client-side service. This is never called server-side.

Parameters
immedWhen true, the service is only stopped if here are no active requests. Otherwise, after all requests have finished. the service object is deleted.
Returns
true Service has been stopped. Once all requests have been completed, the service object will be deleted.
false Service cannot be stopped because there are still active foreground requests and the immed parameter was true.

Reimplemented from XrdSsiService.

◆ StopReuse()

void XrdSsiServReal::StopReuse ( const char *  resKey)

Member Data Documentation

◆ actvSes

int XrdSsiServReal::actvSes
private

◆ doStop

bool XrdSsiServReal::doStop
private

◆ freeCnt

int XrdSsiServReal::freeCnt
private

◆ freeMax

int XrdSsiServReal::freeMax
private

◆ freeSes

XrdSsiSessReal* XrdSsiServReal::freeSes
private

◆ manNode

char* XrdSsiServReal::manNode
private

◆ myMutex

XrdSysMutex XrdSsiServReal::myMutex
private

◆ rcMutex

XrdSysMutex XrdSsiServReal::rcMutex
private

◆ resCache

std::map<std::string, XrdSsiSessReal *> XrdSsiServReal::resCache
private

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