21 #ifndef XRDCLHTTP_FACTORY_HH
22 #define XRDCLHTTP_FACTORY_HH
26 #include <condition_variable>
55 void Produce(std::unique_ptr<XrdClHttp::CurlOperation> operation);
70 static void Shutdown();
72 static bool m_initialized;
73 static std::shared_ptr<XrdClHttp::HandlerQueue> m_queue;
75 const static unsigned m_poll_threads{8};
76 static std::once_flag m_init_once;
78 static std::string m_stats_location;
81 static std::chrono::system_clock::time_point m_start;
84 static std::mutex m_shutdown_lock;
86 static std::thread m_monitor_tid;
88 static std::condition_variable m_shutdown_requested_cv;
90 static bool m_shutdown_requested;
92 static struct shutdown_s {
93 ~shutdown_s() { Shutdown(); }
void Produce(std::unique_ptr< XrdClHttp::CurlOperation > operation)
virtual XrdCl::FileSystemPlugIn * CreateFileSystem(const std::string &url) override
Create a file system plug-in for the given URL.
virtual XrdCl::FilePlugIn * CreateFile(const std::string &url) override
Create a file plug-in for the given URL.
static struct timespec GetHeaderTimeoutWithDefault(time_t oper_timeout)
An interface for file plug-ins.
An interface for file plug-ins.