Public Member Functions | |
std::string | current_source () |
void | HandleResponseWithHosts (XrdCl::XRootDStatus *status, XrdCl::AnyObject *response, XrdCl::HostList *hostList) override |
std::shared_future< std::shared_ptr< Source > > | open () |
~OpenHandler () override | |
Static Public Member Functions | |
static std::shared_ptr< OpenHandler > | getInstance (std::weak_ptr< RequestManager > manager) |
Private Member Functions | |
OpenHandler (std::weak_ptr< RequestManager > manager) | |
Private Attributes | |
std::unique_ptr< XrdCl::File > | m_file |
std::weak_ptr< RequestManager > | m_manager |
std::recursive_mutex | m_mutex |
std::atomic< bool > | m_outstanding_open {false} |
std::promise< std::shared_ptr< Source > > | m_promise |
std::shared_ptr< OpenHandler > | m_self |
std::weak_ptr< OpenHandler > | m_self_weak |
std::shared_future< std::shared_ptr< Source > > | m_shared_future |
Definition at line 241 of file XrdRequestManager.h.
|
override |
Definition at line 965 of file XrdRequestManager.cc.
|
private |
Definition at line 961 of file XrdRequestManager.cc.
std::string XrdAdaptor::RequestManager::OpenHandler::current_source | ( | ) |
Returns the current source server name. Useful primarily for debugging.
Definition at line 1021 of file XrdRequestManager.cc.
References m_file, m_mutex, and AlCaHLTBitMon_QueryRunRegistry::string.
|
inlinestatic |
Definition at line 245 of file XrdRequestManager.h.
References instance, m_self_weak, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by XrdAdaptor::RequestManager::initialize().
|
override |
Handle the file-open response
Definition at line 967 of file XrdRequestManager.cc.
References cms::Exception::addContext(), TauDecayModes::dec, XrdAdaptor::Source::determineHostExcludeString(), edm::errors::FileOpenError, GET_CLOCK_MONOTONIC, m_file, m_manager, m_mutex, m_outstanding_open, m_promise, m_self, eostools::move(), cmsPerfSuiteHarvest::now, SendMonitoringInfo(), PFJetToCaloProducer_cfi::Source, source, mps_update::status, and AlCaHLTBitMon_QueryRunRegistry::string.
std::shared_future< std::shared_ptr< Source > > XrdAdaptor::RequestManager::OpenHandler::open | ( | ) |
Future-based version of the handler If called while a file-open is in progress, we will not start a new file-open. Instead, the callback will be fired for the ongoing open.
NOTE NOTE: This function is not thread-safe due to a lock-ordering issue. The caller must ensure it is not called from multiple threads at once for this object.
Definition at line 1035 of file XrdRequestManager.cc.
References XrdAdaptor::RequestManager::addConnections(), cms::Exception::addContext(), TauDecayModes::dec, ecalTB2006H4_GenSimDigiReco_cfg::File, edm::errors::FileOpenError, edm::errors::LogicError, m_file, XrdAdaptor::RequestManager::m_flags, m_manager, m_mutex, XrdAdaptor::RequestManager::m_name, m_outstanding_open, XrdAdaptor::RequestManager::m_perms, m_promise, m_self, m_self_weak, m_shared_future, XrdAdaptor::RequestManager::prepareOpaqueString(), mps_update::status, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Definition at line 286 of file XrdRequestManager.h.
Referenced by current_source(), HandleResponseWithHosts(), and open().
|
private |
Definition at line 294 of file XrdRequestManager.h.
Referenced by HandleResponseWithHosts(), and open().
|
private |
Definition at line 287 of file XrdRequestManager.h.
Referenced by current_source(), HandleResponseWithHosts(), and open().
|
private |
Definition at line 284 of file XrdRequestManager.h.
Referenced by HandleResponseWithHosts(), and open().
|
private |
Definition at line 280 of file XrdRequestManager.h.
Referenced by HandleResponseWithHosts(), and open().
|
private |
Definition at line 288 of file XrdRequestManager.h.
Referenced by HandleResponseWithHosts(), and open().
|
private |
Definition at line 293 of file XrdRequestManager.h.
Referenced by getInstance(), and open().
|
private |
Definition at line 279 of file XrdRequestManager.h.
Referenced by open().