xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Types | Private Attributes | List of all members
XrdCl::TaskManager Class Reference

#include <XrdClTaskManager.hh>

Collaboration diagram for XrdCl::TaskManager:
Collaboration graph
[legend]

Classes

struct  TaskHelper
 
struct  TaskHelperCmp
 

Public Member Functions

 TaskManager ()
 Constructor.
 
 ~TaskManager ()
 Destructor.
 
bool Start ()
 Start the manager.
 
bool Stop ()
 
void RegisterTask (Task *task, time_t time, bool own=true)
 
void UnregisterTask (Task *task)
 
void RunTasks ()
 Run the tasks - this loops infinitely.
 

Private Types

typedef std::multiset< TaskHelper, TaskHelperCmpTaskSet
 
typedef std::list< Task * > TaskList
 

Private Attributes

uint16_t pResolution
 
TaskSet pTasks
 
TaskList pToBeUnregistered
 
pthread_t pRunnerThread
 
bool pRunning
 
XrdSysMutex pMutex
 
XrdSysMutex pOpMutex
 

Detailed Description

Run short tasks at a given time in the future

The task manager just runs one extra thread so the execution of one tasks may interfere with the execution of another

Member Typedef Documentation

◆ TaskList

typedef std::list<Task*> XrdCl::TaskManager::TaskList
private

◆ TaskSet

typedef std::multiset<TaskHelper, TaskHelperCmp> XrdCl::TaskManager::TaskSet
private

Constructor & Destructor Documentation

◆ TaskManager()

XrdCl::TaskManager::TaskManager ( )

Constructor.

◆ ~TaskManager()

XrdCl::TaskManager::~TaskManager ( )

Destructor.

Member Function Documentation

◆ RegisterTask()

void XrdCl::TaskManager::RegisterTask ( Task task,
time_t  time,
bool  own = true 
)

Run the given task at the given time.

Parameters
tasktask to be run
timetime at which the task should be run
owndetermines whether the task object should be destroyed when no longer needed

◆ RunTasks()

void XrdCl::TaskManager::RunTasks ( )

Run the tasks - this loops infinitely.

◆ Start()

bool XrdCl::TaskManager::Start ( )

Start the manager.

◆ Stop()

bool XrdCl::TaskManager::Stop ( )

Stop the manager

Will wait until the currently running task completes

◆ UnregisterTask()

void XrdCl::TaskManager::UnregisterTask ( Task task)

Remove a task, the unregistration process is asynchronous and may be performed at any point in the future, the function just queues the request. Unregistered task gets destroyed if it was owned by the task manager.

Member Data Documentation

◆ pMutex

XrdSysMutex XrdCl::TaskManager::pMutex
private

◆ pOpMutex

XrdSysMutex XrdCl::TaskManager::pOpMutex
private

◆ pResolution

uint16_t XrdCl::TaskManager::pResolution
private

◆ pRunnerThread

pthread_t XrdCl::TaskManager::pRunnerThread
private

◆ pRunning

bool XrdCl::TaskManager::pRunning
private

◆ pTasks

TaskSet XrdCl::TaskManager::pTasks
private

◆ pToBeUnregistered

TaskList XrdCl::TaskManager::pToBeUnregistered
private

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