![]() |
XRootD
|
A communication channel between the client and the server. More...
#include <XrdClChannel.hh>
Public Member Functions | |
Channel (const URL &url, Poller *poller, TransportHandler *transport, TaskManager *taskManager, JobManager *jobManager, const URL &prefurl=URL()) | |
~Channel () | |
Destructor. More... | |
bool | CanCollapse (const URL &url) |
void | DecFileInstCnt () |
Decrement file object instance count bound to this channel. More... | |
Status | ForceDisconnect () |
Force disconnect of all streams. More... | |
Status | ForceDisconnect (bool hush) |
Force disconnect of all streams. More... | |
Status | ForceReconnect () |
Force reconnect. More... | |
const URL & | GetURL () const |
Get the URL. More... | |
uint16_t | NbConnectedStrm () |
Get the number of connected data streams. More... | |
Status | QueryTransport (uint16_t query, AnyObject &result) |
void | RegisterEventHandler (ChannelEventHandler *handler) |
Register channel event handler. More... | |
void | RemoveEventHandler (ChannelEventHandler *handler) |
Remove a channel event handler. More... | |
XRootDStatus | Send (Message *msg, MsgHandler *handler, bool stateful, time_t expires) |
void | SetOnDataConnectHandler (std::shared_ptr< Job > &onConnJob) |
Set the on-connect handler for data streams. More... | |
void | Tick (time_t now) |
Handle a time event. More... | |
A communication channel between the client and the server.
Definition at line 48 of file XrdClChannel.hh.
XrdCl::Channel::Channel | ( | const URL & | url, |
Poller * | poller, | ||
TransportHandler * | transport, | ||
TaskManager * | taskManager, | ||
JobManager * | jobManager, | ||
const URL & | prefurl = URL() |
||
) |
Constructor
url | address of the server to connect to |
poller | poller object to be used for non-blocking IO |
transport | protocol specific transport handler |
taskManager | async task handler to be used by the channel |
jobManager | worker thread handler to be used by the channel |
Definition at line 84 of file XrdClChannel.cc.
References XrdCl::Log::Debug(), XrdCl::DefaultTimeoutResolution, XrdCl::URL::GetChannelId(), XrdCl::DefaultEnv::GetEnv(), XrdCl::Env::GetInt(), XrdCl::DefaultEnv::GetLog(), XrdCl::URL::GetParams(), XrdCl::URL::GetProtocol(), XrdCl::Stream::Initialize(), XrdCl::TransportHandler::InitializeChannel(), XrdCl::PostMasterMsg, XrdCl::TaskManager::RegisterTask(), XrdCl::Stream::SetChannelData(), XrdCl::Stream::SetIncomingQueue(), XrdCl::Stream::SetJobManager(), XrdCl::URL::SetParams(), XrdCl::Stream::SetPoller(), XrdCl::URL::SetProtocol(), XrdCl::Stream::SetTaskManager(), and XrdCl::Stream::SetTransport().
XrdCl::Channel::~Channel | ( | ) |
Destructor.
Definition at line 132 of file XrdClChannel.cc.
References XrdCl::TransportHandler::FinalizeChannel(), and XrdCl::TickGeneratorTask::Invalidate().
bool XrdCl::Channel::CanCollapse | ( | const URL & | url | ) |
Definition at line 208 of file XrdClChannel.cc.
References XrdCl::Stream::CanCollapse().
Referenced by XrdCl::PostMaster::CollapseRedirect().
void XrdCl::Channel::DecFileInstCnt | ( | ) |
Decrement file object instance count bound to this channel.
Definition at line 216 of file XrdClChannel.cc.
References XrdCl::TransportHandler::DecFileInstCnt().
Referenced by XrdCl::PostMaster::DecFileInstCnt().
Status XrdCl::Channel::ForceDisconnect | ( | ) |
Force disconnect of all streams.
Definition at line 162 of file XrdClChannel.cc.
Status XrdCl::Channel::ForceDisconnect | ( | bool | hush | ) |
Force disconnect of all streams.
Definition at line 170 of file XrdClChannel.cc.
References XrdCl::errOperationInterrupted, XrdCl::Stream::ForceError(), and XrdCl::stError.
Status XrdCl::Channel::ForceReconnect | ( | ) |
Force reconnect.
Definition at line 183 of file XrdClChannel.cc.
References XrdCl::Stream::ForceConnect().
|
inline |
uint16_t XrdCl::Channel::NbConnectedStrm | ( | ) |
Get the number of connected data streams.
Definition at line 192 of file XrdClChannel.cc.
References XrdCl::XRootDTransport::NbConnectedStrm().
Referenced by XrdCl::PostMaster::NbConnectedStrm().
Query the transport handler
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 |
Definition at line 224 of file XrdClChannel.cc.
References XrdCl::Stream::Query(), and XrdCl::TransportHandler::Query().
Referenced by XrdCl::PostMaster::QueryTransport().
void XrdCl::Channel::RegisterEventHandler | ( | ChannelEventHandler * | handler | ) |
Register channel event handler.
Definition at line 234 of file XrdClChannel.cc.
References XrdCl::Stream::RegisterEventHandler().
Referenced by XrdCl::PostMaster::RegisterEventHandler().
void XrdCl::Channel::RemoveEventHandler | ( | ChannelEventHandler * | handler | ) |
Remove a channel event handler.
Definition at line 242 of file XrdClChannel.cc.
References XrdCl::Stream::RemoveEventHandler().
Referenced by XrdCl::PostMaster::RemoveEventHandler().
XRootDStatus XrdCl::Channel::Send | ( | Message * | msg, |
MsgHandler * | 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 successfully pushed through the wire or when the timeout elapses
msg | message to be sent |
handler | handler to be notified about the status |
stateful | physical stream disconnection causes an error |
expires | unix timestamp after which a failure is reported to the listener |
Definition at line 142 of file XrdClChannel.cc.
References XrdCl::Stream::Send().
Referenced by XrdCl::PostMaster::Send().
void XrdCl::Channel::SetOnDataConnectHandler | ( | std::shared_ptr< Job > & | onConnJob | ) |
Set the on-connect handler for data streams.
Definition at line 200 of file XrdClChannel.cc.
References XrdCl::Stream::SetOnDataConnectHandler().
Referenced by XrdCl::PostMaster::SetOnDataConnectHandler().
void XrdCl::Channel::Tick | ( | time_t | now | ) |
Handle a time event.
Definition at line 154 of file XrdClChannel.cc.
References XrdCl::Stream::Tick().