XRootD
Loading...
Searching...
No Matches
XrdXrootdTransPend Class Reference

#include <XrdXrootdTransPend.hh>

+ Collaboration diagram for XrdXrootdTransPend:

Public Member Functions

 XrdXrootdTransPend (XrdLink *lkP, XrdXrootdTransit *brP, ClientRequest *rqP)
 
 ~XrdXrootdTransPend ()
 
void Queue ()
 

Static Public Member Functions

static void Clear (XrdXrootdTransit *trP)
 
static XrdXrootdTransPendRemove (XrdLink *lP, short sid)
 

Public Attributes

XrdXrootdTransitbridge
 
XrdLinklink
 
XrdXrootdTransPendnext
 
union { 
 
ClientRequest Request
 
short theSid
 
Pend 
 

Detailed Description

Definition at line 42 of file XrdXrootdTransPend.hh.

Constructor & Destructor Documentation

◆ XrdXrootdTransPend()

XrdXrootdTransPend::XrdXrootdTransPend ( XrdLink lkP,
XrdXrootdTransit brP,
ClientRequest rqP 
)
inline

Definition at line 58 of file XrdXrootdTransPend.hh.

61 : next(0), link(lkP), bridge(brP)
62 {memcpy(&Pend.Request, rqP, sizeof(Pend.Request));}
union XrdXrootdTransPend::@191 Pend
XrdXrootdTransPend * next
XrdXrootdTransit * bridge

References Pend.

◆ ~XrdXrootdTransPend()

XrdXrootdTransPend::~XrdXrootdTransPend ( )
inline

Definition at line 64 of file XrdXrootdTransPend.hh.

64{}

Member Function Documentation

◆ Clear()

void XrdXrootdTransPend::Clear ( XrdXrootdTransit trP)
static

Definition at line 48 of file XrdXrootdTransPend.cc.

49{
50 XrdXrootdTransPend *tpP, *tpN, *tpX;
51
52// Lock this operations
53//
54 myMutex.Lock();
55
56// Run through the queue deleting all elements owned by the transit object
57//
58 tpP = 0; tpN = rqstQ;
59 while(tpN)
60 {if (tpN->bridge == trP)
61 {if (tpP) tpP->next = tpN->next;
62 else rqstQ = tpN->next;
63 tpX = tpN; tpN = tpN->next; delete tpX;
64 } else {
65 tpP = tpN; tpN = tpN->next;
66 }
67 }
68
69// All done
70//
71 myMutex.UnLock();
72}

References bridge, XrdSysMutex::Lock(), next, and XrdSysMutex::UnLock().

Referenced by XrdXrootdTransit::Recycle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Queue()

void XrdXrootdTransPend::Queue ( )

Definition at line 78 of file XrdXrootdTransPend.cc.

79{
80// Now place it on out pending queue
81//
82 myMutex.Lock();
83 next = rqstQ; rqstQ = this;
84 myMutex.UnLock();
85}

References XrdSysMutex::Lock(), next, and XrdSysMutex::UnLock().

+ Here is the call graph for this function:

◆ Remove()

XrdXrootdTransPend * XrdXrootdTransPend::Remove ( XrdLink lP,
short  sid 
)
static

Definition at line 91 of file XrdXrootdTransPend.cc.

92{
93 XrdXrootdTransPend *tpP, *tpN;
94
95// Lock this operations
96//
97 myMutex.Lock();
98
99// Run through the queue and remove matching element
100//
101 tpP = 0; tpN = rqstQ;
102 while(tpN)
103 {if (tpN->link == lP && tpN->Pend.theSid == sid)
104 {if (tpP) tpP->next = tpN->next;
105 else rqstQ = tpN->next;
106 break;
107 } else {
108 tpP = tpN; tpN = tpN->next;
109 }
110 }
111
112// All done
113//
114 myMutex.UnLock();
115 return tpN;
116}

References link, XrdSysMutex::Lock(), next, Pend, and XrdSysMutex::UnLock().

Referenced by XrdXrootdTransit::Attn().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ bridge

XrdXrootdTransit* XrdXrootdTransPend::bridge

Definition at line 47 of file XrdXrootdTransPend.hh.

Referenced by XrdXrootdTransit::Attn(), and Clear().

◆ link

XrdLink* XrdXrootdTransPend::link

Definition at line 46 of file XrdXrootdTransPend.hh.

Referenced by Remove().

◆ next

XrdXrootdTransPend* XrdXrootdTransPend::next

Definition at line 45 of file XrdXrootdTransPend.hh.

Referenced by Clear(), Queue(), and Remove().

◆ [union]

union { ... } XrdXrootdTransPend::Pend

Referenced by XrdXrootdTransPend(), and Remove().


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