Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis 3 Programmer Reference
restincurl::Worker Class Reference
Collaboration diagram for restincurl::Worker:
Collaboration graph

Classes

class  WorkerThread
 

Public Member Functions

void PrepareThread ()
 
void Enqueue (Request::ptr_t req)
 
void Join () const
 
void CloseWhenFinished ()
 
void Close ()
 
bool IsDone () const
 
bool HaveThread () const noexcept
 
size_t GetNumActiveRequests () const
 

Static Public Member Functions

static std::unique_ptr< WorkerCreate ()
 

Private Member Functions

void Signal ()
 
void Dequeue ()
 
void Init ()
 
void Clean ()
 
bool EvaluateState (const bool transfersRunning, const bool doDequeue) const noexcept
 
auto GetNextTimeout () const noexcept
 
void Run ()
 

Private Attributes

bool close_pending_ {false}
 
bool abort_ {false}
 
bool done_ {false}
 
bool pending_entries_in_queue_ = false
 
decltype(curl_multi_init()) handle_ = {}
 
std::mutex mutex_
 
std::shared_ptr< WorkerThreadthread_
 
std::deque< Request::ptr_t > queue_
 
std::map< EasyHandle::handle_t, Request::ptr_t > ongoing_
 
Signaler signal_
 

Detailed Description

Definition at line 744 of file restincurl.h.

Constructor & Destructor Documentation

◆ ~Worker()

restincurl::Worker::~Worker ( )
inline

Definition at line 777 of file restincurl.h.

Member Function Documentation

◆ Clean()

void restincurl::Worker::Clean ( )
inlineprivate

Definition at line 928 of file restincurl.h.

◆ Close()

void restincurl::Worker::Close ( )
inline

Definition at line 847 of file restincurl.h.

◆ CloseWhenFinished()

void restincurl::Worker::CloseWhenFinished ( )
inline

Definition at line 838 of file restincurl.h.

◆ Create()

static std::unique_ptr< Worker > restincurl::Worker::Create ( )
inlinestatic

Definition at line 810 of file restincurl.h.

◆ Dequeue()

void restincurl::Worker::Dequeue ( )
inlineprivate

Definition at line 879 of file restincurl.h.

◆ Enqueue()

void restincurl::Worker::Enqueue ( Request::ptr_t req)
inline

Definition at line 814 of file restincurl.h.

◆ EvaluateState()

bool restincurl::Worker::EvaluateState ( const bool transfersRunning,
const bool doDequeue ) const
inlineprivatenoexcept

Definition at line 936 of file restincurl.h.

◆ GetNextTimeout()

auto restincurl::Worker::GetNextTimeout ( ) const
inlineprivatenoexcept

Definition at line 946 of file restincurl.h.

◆ GetNumActiveRequests()

size_t restincurl::Worker::GetNumActiveRequests ( ) const
inline

Definition at line 869 of file restincurl.h.

◆ HaveThread()

bool restincurl::Worker::HaveThread ( ) const
inlinenoexcept

Definition at line 861 of file restincurl.h.

◆ Init()

void restincurl::Worker::Init ( )
inlineprivate

Definition at line 920 of file restincurl.h.

◆ IsDone()

bool restincurl::Worker::IsDone ( ) const
inline

Definition at line 856 of file restincurl.h.

◆ Join()

void restincurl::Worker::Join ( ) const
inline

Definition at line 822 of file restincurl.h.

◆ PrepareThread()

void restincurl::Worker::PrepareThread ( )
inline

Definition at line 784 of file restincurl.h.

◆ Run()

void restincurl::Worker::Run ( )
inlineprivate

Definition at line 951 of file restincurl.h.

◆ Signal()

void restincurl::Worker::Signal ( )
inlineprivate

Definition at line 875 of file restincurl.h.

Member Data Documentation

◆ abort_

bool restincurl::Worker::abort_ {false}
private

Definition at line 1084 of file restincurl.h.

◆ close_pending_

bool restincurl::Worker::close_pending_ {false}
private

Definition at line 1083 of file restincurl.h.

◆ done_

bool restincurl::Worker::done_ {false}
private

Definition at line 1085 of file restincurl.h.

◆ handle_

decltype(curl_multi_init()) restincurl::Worker::handle_ = {}
private

Definition at line 1087 of file restincurl.h.

◆ mutex_

std::mutex restincurl::Worker::mutex_
mutableprivate

Definition at line 1088 of file restincurl.h.

◆ ongoing_

std::map<EasyHandle::handle_t, Request::ptr_t> restincurl::Worker::ongoing_
private

Definition at line 1091 of file restincurl.h.

◆ pending_entries_in_queue_

bool restincurl::Worker::pending_entries_in_queue_ = false
private

Definition at line 1086 of file restincurl.h.

◆ queue_

std::deque<Request::ptr_t> restincurl::Worker::queue_
private

Definition at line 1090 of file restincurl.h.

◆ signal_

Signaler restincurl::Worker::signal_
private

Definition at line 1092 of file restincurl.h.

◆ thread_

std::shared_ptr<WorkerThread> restincurl::Worker::thread_
private

Definition at line 1089 of file restincurl.h.


The documentation for this class was generated from the following file: