Ubuntu TV Media Scanner
A centralized index for removable media content.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Attributes | List of all members
mediascanner::TaskManager Class Reference

The TaskManager schedules tasks for running them in a background thread. More...

#include <mediascanner/taskmanager.h>

Public Types

typedef std::function< void()> TaskFunction
 The signature of task functions. More...
 

Public Member Functions

 TaskManager (const std::string &name)
 
 ~TaskManager ()
 
unsigned AppendTask (const TaskFunction &task, unsigned priority=kInstantly)
 
unsigned PrependTask (const TaskFunction &task, unsigned priority=kInstantly)
 
void RunTask (const TaskFunction &task, unsigned priority=kInstantly)
 
unsigned AppendGroupedTask (unsigned group_id, const TaskFunction &task, unsigned priority=kInstantly)
 
unsigned PrependGroupedTask (unsigned group_id, const TaskFunction &task, unsigned priority=kInstantly)
 
void RunGroupedTask (unsigned group_id, const TaskFunction &task, unsigned priority=kInstantly)
 
unsigned CancelByGroupId (unsigned group_id)
 
bool CancelTaskByTaskId (unsigned task_id)
 
void Shutdown ()
 

Static Public Attributes

static const unsigned kInstantly = 0
 

Detailed Description

The TaskManager schedules tasks for running them in a background thread.

The tasks are ordered by an operation ID. This operation ID can also be used to cancel tasks which are still queued, but not started yet.

See Also
MediaIndexFacade for decorating tasks with MediaIndex management routines.

Member Typedef Documentation

typedef std::function<void()> mediascanner::TaskManager::TaskFunction

The signature of task functions.

Constructor & Destructor Documentation

mediascanner::TaskManager::TaskManager ( const std::string &  name)
explicit
mediascanner::TaskManager::~TaskManager ( )

Member Function Documentation

unsigned mediascanner::TaskManager::AppendGroupedTask ( unsigned  group_id,
const TaskFunction task,
unsigned  priority = kInstantly 
)
unsigned mediascanner::TaskManager::AppendTask ( const TaskFunction task,
unsigned  priority = kInstantly 
)
inline
unsigned mediascanner::TaskManager::CancelByGroupId ( unsigned  group_id)
bool mediascanner::TaskManager::CancelTaskByTaskId ( unsigned  task_id)
unsigned mediascanner::TaskManager::PrependGroupedTask ( unsigned  group_id,
const TaskFunction task,
unsigned  priority = kInstantly 
)
unsigned mediascanner::TaskManager::PrependTask ( const TaskFunction task,
unsigned  priority = kInstantly 
)
inline
void mediascanner::TaskManager::RunGroupedTask ( unsigned  group_id,
const TaskFunction task,
unsigned  priority = kInstantly 
)
void mediascanner::TaskManager::RunTask ( const TaskFunction task,
unsigned  priority = kInstantly 
)
inline
void mediascanner::TaskManager::Shutdown ( )

Member Data Documentation

const unsigned mediascanner::TaskManager::kInstantly = 0
static