#include <XrdClPostMaster.hh>
Collaboration diagram for XrdCl::PostMaster:
Public Member Functions | |
PostMaster () | |
Constructor. | |
virtual | ~PostMaster () |
Destructor. | |
bool | Initialize () |
Initializer. | |
bool | Finalize () |
Finalizer. | |
bool | Start () |
Start the post master. | |
bool | Stop () |
Stop the postmaster. | |
bool | Reinitialize () |
Reinitialize after fork. | |
Status | Send (const URL &url, Message *msg, bool stateful, time_t expires) |
Status | Send (const URL &url, Message *msg, OutgoingMsgHandler *handler, bool stateful, time_t expires) |
Status | Receive (const URL &url, Message *&msg, MessageFilter *filter, time_t expires) |
Status | Receive (const URL &url, IncomingMsgHandler *handler, time_t expires) |
Status | QueryTransport (const URL &url, uint16_t query, AnyObject &result) |
Status | RegisterEventHandler (const URL &url, ChannelEventHandler *handler) |
Register channel event handler. | |
Status | RemoveEventHandler (const URL &url, ChannelEventHandler *handler) |
Remove a channel event handler. | |
TaskManager * | GetTaskManager () |
Get the task manager object user by the post master. | |
JobManager * | GetJobManager () |
Get the job manager object user by the post master. | |
Private Types | |
typedef std::map< std::string, Channel * > | ChannelMap |
Private Member Functions | |
Channel * | GetChannel (const URL &url) |
Private Attributes | |
Poller * | pPoller |
TaskManager * | pTaskManager |
ChannelMap | pChannelMap |
XrdSysMutex | pChannelMapMutex |
bool | pInitialized |
JobManager * | pJobManager |
typedef std::map<std::string, Channel*> XrdCl::PostMaster::ChannelMap [private] |
XrdCl::PostMaster::PostMaster | ( | ) |
Constructor.
virtual XrdCl::PostMaster::~PostMaster | ( | ) | [virtual] |
Destructor.
bool XrdCl::PostMaster::Finalize | ( | ) |
Finalizer.
Channel* XrdCl::PostMaster::GetChannel | ( | const URL & | url | ) | [private] |
JobManager* XrdCl::PostMaster::GetJobManager | ( | ) | [inline] |
Get the job manager object user by the post master.
TaskManager* XrdCl::PostMaster::GetTaskManager | ( | ) | [inline] |
Get the task manager object user by the post master.
bool XrdCl::PostMaster::Initialize | ( | ) |
Initializer.
Query the transport handler for a given URL
url | the channel to be queried | |
query | the query as defined in the TransportQuery struct or others that may be recognized by the protocol transport | |
result | the result of the query |
Status XrdCl::PostMaster::Receive | ( | const URL & | url, | |
IncomingMsgHandler * | handler, | |||
time_t | expires | |||
) |
Listen to incoming messages, the listener is notified when a new message arrives and when the timeout passes
url | sender of the message | |
handler | handler to be notified about new messages | |
expires | expiration timestamp |
Status XrdCl::PostMaster::Receive | ( | const URL & | url, | |
Message *& | msg, | |||
MessageFilter * | filter, | |||
time_t | expires | |||
) |
Synchronously receive a message - blocks until a message matching a filter is found in the incoming queue or the timeout passes
url | sender of the message | |
msg | reference to a message pointer, the pointer will point to the received message | |
filter | filter object defining what to look for | |
expires | expiration timestamp |
Status XrdCl::PostMaster::RegisterEventHandler | ( | const URL & | url, | |
ChannelEventHandler * | handler | |||
) |
Register channel event handler.
bool XrdCl::PostMaster::Reinitialize | ( | ) |
Reinitialize after fork.
Status XrdCl::PostMaster::RemoveEventHandler | ( | const URL & | url, | |
ChannelEventHandler * | handler | |||
) |
Remove a channel event handler.
Status XrdCl::PostMaster::Send | ( | const URL & | url, | |
Message * | msg, | |||
OutgoingMsgHandler * | handler, | |||
bool | stateful, | |||
time_t | expires | |||
) |
Send the message asynchronously - the message is inserted into the send queue and a listener is called when the message is succesfsully pushed through the wire or when the timeout elapses
DEADLOCK WARNING: no lock should be taken while calling this method that are used in the callback as well.
url | recipient of the message | |
msg | message to be sent | |
expires | unix timestamp after which a failure is reported to the handler | |
handler | handler will be notified about the status | |
stateful | physical stream disconnection causes an error |
Send a message synchronously - synchronously means that it will block until the message is written to a socket
DEADLOCK WARNING: no lock should be taken while calling this method that are used in the callback as well.
url | recipient of the message | |
msg | message to be sent | |
statful | physical stream disconnection causes an error | |
expires | unix timestamp after which a failure should be reported if sending was unsuccessful |
bool XrdCl::PostMaster::Start | ( | ) |
Start the post master.
bool XrdCl::PostMaster::Stop | ( | ) |
Stop the postmaster.
ChannelMap XrdCl::PostMaster::pChannelMap [private] |
bool XrdCl::PostMaster::pInitialized [private] |
JobManager* XrdCl::PostMaster::pJobManager [private] |
Poller* XrdCl::PostMaster::pPoller [private] |
TaskManager* XrdCl::PostMaster::pTaskManager [private] |