Helper for creating poller objects.
More...
#include <XrdClPollerFactory.hh>
Helper for creating poller objects.
Definition at line 30 of file XrdClPollerFactory.hh.
◆ CreatePoller()
Poller * XrdCl::PollerFactory::CreatePoller |
( |
const std::string & |
preference | ) |
|
|
static |
Create a poller object, try in order of preference, if none of the poller types is known then return 0
- Parameters
-
preference | comma separated list of poller types in order of preference |
- Returns
- poller object or 0 if non of the poller types is known
Definition at line 44 of file XrdClPollerFactory.cc.
51 typedef std::map<std::string, Poller *(*)()> PollerMap;
53 pollerMap[
"built-in"] = createBuiltIn;
58 PollerMap::iterator it;
59 std::string available;
60 for( it = pollerMap.begin(); it != pollerMap.end(); ++it )
62 available += it->first; available +=
", ";
64 if( !available.empty() )
65 available.erase( available.length()-2, 2 );
66 log->Debug(
PollerMsg,
"Available pollers: %s", available.c_str() );
71 if( preference.empty() )
73 log->Error(
PollerMsg,
"Poller preference list is empty" );
76 log->Debug(
PollerMsg,
"Attempting to create a poller according to "
77 "preference: %s", preference.c_str() );
79 std::vector<std::string> prefs;
80 std::vector<std::string>::iterator itP;
82 for( itP = prefs.begin(); itP != prefs.end(); ++itP )
84 it = pollerMap.find( *itP );
85 if( it == pollerMap.end() )
87 log->Debug(
PollerMsg,
"Unable to create poller: %s",
91 log->Debug(
PollerMsg,
"Creating poller: %s", itP->c_str() );
92 return (*it->second)();
static Log * GetLog()
Get default log.
static void splitString(Container &result, const std::string &input, const std::string &delimiter)
Split a string.
References XrdCl::Log::Debug(), XrdCl::Log::Error(), XrdCl::DefaultEnv::GetLog(), XrdCl::PollerMsg, and XrdCl::Utils::splitString().
Referenced by XrdCl::PostMaster::Initialize().
The documentation for this class was generated from the following files: