xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdClient
XrdClientUnsolMsg.hh
Go to the documentation of this file.
1
2
// //
3
// XrdClientUnsolMsg //
4
// //
5
// Author: Fabrizio Furano (INFN Padova, 2004) //
6
// Adapted from TXNetFile (root.cern.ch) originally done by //
7
// Alvise Dorigo, Fabrizio Furano //
8
// INFN Padova, 2003 //
9
// //
10
// Base classes for unsolicited msg senders/receivers //
11
// //
13
14
// $Id$
15
16
#ifndef XRC_UNSOLMSG_H
17
#define XRC_UNSOLMSG_H
18
19
class
XrdClientMessage
;
20
class
XrdClientUnsolMsgSender
;
21
22
// The processing result for an unsolicited response
23
enum
UnsolRespProcResult
{
24
kUNSOL_CONTINUE
= 0,
// Dispatching must continue to other interested handlers
25
kUNSOL_KEEP
,
// Dispatching ended, but stream still alive (must keep the SID)
26
kUNSOL_DISPOSE
// Dispatching ended, stream no more to be used
27
};
28
29
// Handler
30
31
class
XrdClientAbsUnsolMsgHandler
{
32
public
:
33
34
virtual
~XrdClientAbsUnsolMsgHandler
() { }
35
// To be called when an unsolicited response arrives from the lower layers
36
virtual
UnsolRespProcResult
ProcessUnsolicitedMsg
(
XrdClientUnsolMsgSender
*sender,
37
XrdClientMessage
*unsolmsg) = 0;
38
39
};
40
41
// Sender
42
43
class
XrdClientUnsolMsgSender
{
44
45
public
:
46
47
virtual
~XrdClientUnsolMsgSender
() { }
48
49
// The upper level handler for unsolicited responses
50
XrdClientAbsUnsolMsgHandler
*
UnsolicitedMsgHandler
;
51
52
inline
UnsolRespProcResult
SendUnsolicitedMsg
(
XrdClientUnsolMsgSender
*sender,
XrdClientMessage
*unsolmsg) {
53
// We simply send the event
54
if
(
UnsolicitedMsgHandler
)
55
return
(
UnsolicitedMsgHandler
->
ProcessUnsolicitedMsg
(sender, unsolmsg));
56
57
return
kUNSOL_CONTINUE
;
58
}
59
60
inline
XrdClientUnsolMsgSender
() {
UnsolicitedMsgHandler
= 0; }
61
};
62
63
#endif
Generated by
1.8.1.2