XrdCl::PostMaster Class Reference

A hub for dispatching and receiving messages. More...

#include <XrdClPostMaster.hh>

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

List of all members.

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 Redirect (const URL &url, Message *msg, IncomingMsgHandler *handler)
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.
TaskManagerGetTaskManager ()
 Get the task manager object user by the post master.
JobManagerGetJobManager ()
 Get the job manager object user by the post master.
Status ForceDisconnect (const URL &url)
 Shut down a channel.
uint16_t NbConnectedStrm (const URL &url)
 Get the number of connected data streams.
void SetOnConnectHandler (const URL &url, Job *onConnJob)
 Set the on-connect handler for data streams.

Private Types

typedef std::map< std::string,
Channel * > 
ChannelMap

Private Member Functions

ChannelGetChannel (const URL &url)

Private Attributes

PollerpPoller
TaskManagerpTaskManager
ChannelMap pChannelMap
XrdSysMutex pChannelMapMutex
bool pInitialized
JobManagerpJobManager

Detailed Description

A hub for dispatching and receiving messages.


Member Typedef Documentation

typedef std::map<std::string, Channel*> XrdCl::PostMaster::ChannelMap [private]

Constructor & Destructor Documentation

XrdCl::PostMaster::PostMaster (  ) 

Constructor.

virtual XrdCl::PostMaster::~PostMaster (  )  [virtual]

Destructor.


Member Function Documentation

bool XrdCl::PostMaster::Finalize (  ) 

Finalizer.

Status XrdCl::PostMaster::ForceDisconnect ( const URL url  ) 

Shut down a channel.

Channel* XrdCl::PostMaster::GetChannel ( const URL url  )  [private]
JobManager* XrdCl::PostMaster::GetJobManager (  )  [inline]

Get the job manager object user by the post master.

References pJobManager.

TaskManager* XrdCl::PostMaster::GetTaskManager (  )  [inline]

Get the task manager object user by the post master.

References pTaskManager.

bool XrdCl::PostMaster::Initialize (  ) 

Initializer.

uint16_t XrdCl::PostMaster::NbConnectedStrm ( const URL url  ) 

Get the number of connected data streams.

Status XrdCl::PostMaster::QueryTransport ( const URL url,
uint16_t  query,
AnyObject result 
)

Query the transport handler for a given URL

Parameters:
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
Returns:
status 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

Parameters:
url sender of the message
handler handler to be notified about new messages
expires expiration timestamp
Returns:
success when the listener has been inserted correctly
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

Parameters:
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
Returns:
success when the message has been received successfully, failure otherwise
Status XrdCl::PostMaster::Redirect ( const URL url,
Message msg,
IncomingMsgHandler handler 
)
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.

Parameters:
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
Returns:
success if the message was successfully inserted into the send queues, failure otherwise
Status XrdCl::PostMaster::Send ( const URL url,
Message msg,
bool  stateful,
time_t  expires 
)

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.

Parameters:
url recipient of the message
msg message to be sent
stateful physical stream disconnection causes an error
expires unix timestamp after which a failure should be reported if sending was unsuccessful
Returns:
success if the message has been pushed through the wire, failure otherwise
void XrdCl::PostMaster::SetOnConnectHandler ( const URL url,
Job onConnJob 
)

Set the on-connect handler for data streams.

bool XrdCl::PostMaster::Start (  ) 

Start the post master.

bool XrdCl::PostMaster::Stop (  ) 

Stop the postmaster.


Member Data Documentation

Referenced by GetJobManager().

Referenced by GetTaskManager().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 3 Feb 2020 for xrootd by  doxygen 1.6.1