foobar2000 SDK  2015-01-14
Public Member Functions | Static Private Member Functions | Private Attributes
completion_notify_receiver

#include <completion_notify.h>

+ Inheritance diagram for completion_notify_receiver:

Public Member Functions

 ~completion_notify_receiver ()
 
completion_notify::ptr create_or_get_task (unsigned p_id)
 
completion_notify_ptr create_task (unsigned p_id)
 
bool have_task (unsigned p_id) const
 
virtual void on_task_completion (unsigned p_id, unsigned p_status)
 
void orphan_all_tasks ()
 
void orphan_task (unsigned p_id)
 

Static Private Member Functions

static void orphanfunc (unsigned, completion_notify_orphanable_nnptr p_item)
 

Private Attributes

pfc::map_t< unsigned, completion_notify_orphanable_nnptrm_tasks
 

Detailed Description

Helper base class for classes that manage nonblocking tasks and get notified back thru completion_notify interface.

Definition at line 60 of file completion_notify.h.

Constructor & Destructor Documentation

completion_notify_receiver::~completion_notify_receiver ( )
inline

Definition at line 87 of file completion_notify.h.

87  {
89  }

Member Function Documentation

completion_notify::ptr completion_notify_receiver::create_or_get_task ( unsigned  p_id)
inline

Definition at line 62 of file completion_notify.h.

62  {
64  if (!m_tasks.query(p_id,ptr)) {
65  ptr = completion_notify_create(this,p_id);
66  m_tasks.set(p_id,ptr);
67  }
68  return ptr;
69  }
service_nnptr_t< completion_notify_orphanable > completion_notify_create(t_receiver *p_receiver, unsigned p_taskid)
pfc::map_t< unsigned, completion_notify_orphanable_nnptr > m_tasks
completion_notify_ptr completion_notify_receiver::create_task ( unsigned  p_id)
inline

Definition at line 70 of file completion_notify.h.

70  {
72  if (m_tasks.query(p_id,ptr)) ptr->orphan();
73  ptr = completion_notify_create(this,p_id);
74  m_tasks.set(p_id,ptr);
75  return ptr;
76  }
service_nnptr_t< completion_notify_orphanable > completion_notify_create(t_receiver *p_receiver, unsigned p_taskid)
pfc::map_t< unsigned, completion_notify_orphanable_nnptr > m_tasks
bool completion_notify_receiver::have_task ( unsigned  p_id) const
inline

Definition at line 77 of file completion_notify.h.

77  {
78  return m_tasks.have_item(p_id);
79  }
pfc::map_t< unsigned, completion_notify_orphanable_nnptr > m_tasks
virtual void completion_notify_receiver::on_task_completion ( unsigned  p_id,
unsigned  p_status 
)
inlinevirtual

Reimplemented in CSimpleThread, and InPlaceEdit::CTableEditHelperV2.

Definition at line 95 of file completion_notify.h.

95 {}
void completion_notify_receiver::orphan_all_tasks ( )
inline

Definition at line 90 of file completion_notify.h.

90  {
91  m_tasks.enumerate(orphanfunc);
92  m_tasks.remove_all();
93  }
static void orphanfunc(unsigned, completion_notify_orphanable_nnptr p_item)
pfc::map_t< unsigned, completion_notify_orphanable_nnptr > m_tasks
void completion_notify_receiver::orphan_task ( unsigned  p_id)
inline

Definition at line 80 of file completion_notify.h.

80  {
82  if (m_tasks.query(p_id,ptr)) {
83  ptr->orphan();
84  m_tasks.remove(p_id);
85  }
86  }
pfc::map_t< unsigned, completion_notify_orphanable_nnptr > m_tasks
static void completion_notify_receiver::orphanfunc ( unsigned  ,
completion_notify_orphanable_nnptr  p_item 
)
inlinestaticprivate

Definition at line 97 of file completion_notify.h.

97 {p_item->orphan();}

Field Documentation

pfc::map_t<unsigned,completion_notify_orphanable_nnptr> completion_notify_receiver::m_tasks
private

Definition at line 98 of file completion_notify.h.


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