shared_ptr<CPSG_ReplyItem>& item);
84 constshared_ptr<CPSG_Reply>& reply);
94unordered_map<const CPSG_Request*, CPSGL_RequestTracker*>
m_TrackerMap;
102 constshared_ptr<CPSG_Request>& request,
133 template<
classProcessor>
141 constshared_ptr<CPSG_ReplyItem>& item);
143 constshared_ptr<CPSG_Reply>& reply);
161 constshared_ptr<CPSG_ReplyItem>& item);
167 constshared_ptr<CPSG_ReplyItem>& item);
223 template<
classProcessor>
235 void*
operator new(size_t) =
delete;
236 void*
operator new[](size_t) =
delete;
255 void AddRequest(
constshared_ptr<CPSG_Request>& request,
263 void*
operator new(size_t) =
delete;
264 void*
operator new[](size_t) =
delete;
CRef< CPSGL_Queue > m_Queue
void AddRequest(const shared_ptr< CPSG_Request > &request, const CRef< CPSGL_Processor > &processor, size_t index=0)
set< CRef< CPSGL_RequestTracker > > m_QueuedRequests
CThreadPool & m_ThreadPool
void MarkAsFinished(const CRef< CPSGL_RequestTracker > &request_processor)
list< CRef< CPSGL_RequestTracker > > m_CompleteRequests
CFastMutex m_CompleteMutex
CRef< CPSGL_RequestTracker > GetQueuedRequest()
CPSGL_ResultGuard GetNextResult()
CSemaphore m_CompleteSemaphore
CPSGL_QueueGuard(CThreadPool &thread_pool, CPSGL_Queue &queue)
void ProcessItemCallback(EPSG_Status status, const shared_ptr< CPSG_ReplyItem > &item)
bool SendRequest(const CRef< CPSGL_RequestTracker > &tracker)
CRef< CRequestContext > m_RequestContext
void SetRequestContext(const CRef< CRequestContext > &context)
void DeregisterRequest(const CPSGL_RequestTracker *tracker)
void ProcessReplyCallback(EPSG_Status status, const shared_ptr< CPSG_Reply > &reply)
CPSG_EventLoop m_EventLoop
CPSG_EventLoop & GetPSG_Queue()
CRef< CPSGL_RequestTracker > GetTracker(const shared_ptr< CPSG_Reply > &reply)
unordered_map< const CPSG_Request *, CPSGL_RequestTracker * > m_TrackerMap
CFastMutex m_TrackerMapMutex
void RegisterRequest(CPSGL_RequestTracker *tracker)
CPSGL_Queue(const string &service_name)
CPSGL_RequestTracker(CPSGL_QueueGuard &queue_guard, const shared_ptr< CPSG_Request > &request, const CRef< CPSGL_Processor > &processor, size_t index=0)
void MarkAsNeedsFinalization()
CThreadPool_Task::EStatus BackgroundProcessItemCallback(CBackgroundTask *task, EPSG_Status status, const shared_ptr< CPSG_ReplyItem > &item)
void StartProcessReplyInBackground()
void MarkAsFinished(CThreadPool_Task::EStatus status)
void WaitForBackgroundTasks()
unsigned m_InCallbackCount
TBackgroundTasks m_BackgroundTasks
EPSG_Status m_ReplyStatus
void CancelBackgroundTasks()
CRef< Processor > GetProcessor()
EPSG_Status GetReplyStatus() const
CRef< CPSGL_Processor > m_Processor
const CRef< CPSGL_Processor > & GetProcessor() const
shared_ptr< CPSG_Reply > m_Reply
void QueueInBackground(const CRef< CBackgroundTask > &task)
CPSGL_QueueGuard & m_QueueGuard
set< CRef< CBackgroundTask > > TBackgroundTasks
CRef< CObjectFor< CFastMutex > > m_TrackerMutex
void StartProcessItemInBackground(EPSG_Status status, const shared_ptr< CPSG_ReplyItem > &item)
CSemaphore m_InCallbackSemaphore
CThreadPool_Task::EStatus BackgroundProcessReplyCallback(CBackgroundTask *task)
const shared_ptr< CPSG_Request > & GetRequest() const
shared_ptr< CPSG_Request > m_Request
void ProcessItemCallback(EPSG_Status status, const shared_ptr< CPSG_ReplyItem > &item)
atomic< CThreadPool_Task::EStatus > m_Status
unsigned m_BackgroundItemTaskCount
CPSGL_ResultGuard FinalizeResult()
CFastMutex & GetTrackerMutex()
void ProcessReplyCallback(EPSG_Status status, const shared_ptr< CPSG_Reply > &reply)
CThreadPool & m_ThreadPool
CThreadPool_Task::EStatus GetStatus() const
EPSG_Status GetReplyStatus() const
CPSGL_ResultGuard(CPSGL_ResultGuard &&)
const CRef< CPSGL_Processor > & GetProcessor()
CPSGL_ResultGuard & operator=(const CPSGL_ResultGuard &)=delete
EPSG_Status m_ReplyStatus
DECLARE_OPERATOR_BOOL_REF(m_Processor)
CRef< Processor > GetProcessor() const
CThreadPool_Task::EStatus GetStatus() const
CRef< CPSGL_Processor > m_Processor
CThreadPool_Task::EStatus m_Status
CPSGL_ResultGuard(const CPSGL_ResultGuard &)=delete
CPSGL_ResultGuard & operator=(CPSGL_ResultGuard &&)
A class derived from the queue class that additionally allows to run event loop.
Main class implementing functionality of pool of threads.
Include a standard set of the NCBI C++ Toolkit most basic headers.
TObjectType * GetNCPointerOrNull(void) const THROWS_NONE
Get pointer value.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
EStatus
Status of the task.
Pool of generic task-executing threads.
EPSG_Status
Retrieval result.
static CS_CONTEXT * context
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4