NCBI C++ ToolKit
|
Search Toolkit Book for CCompositeAppTask
CCompositeAppTask - an application task that consists of subtasks. More...
#include <gui/framework/app_task_impl.hpp>
Public Types | |
typedef CIRef< IAppTask > | TTaskRef |
Public Types inherited from CObject | |
enum | EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern } |
Control filling of newly allocated memory. More... | |
typedef CObjectCounterLocker | TLockerType |
Default locker type for CRef. More... | |
typedef atomic< Uint8 > | TCounter |
Counter type is CAtomiCounter. More... | |
typedef Uint8 | TCount |
Alias for value type of counter. More... | |
Public Types inherited from IAppTask | |
enum | ETaskState { eInvalid = -1 , eInitial , eRunning , eBackgrounded , eCompleted , eFailed , eCanceled , eLastState } |
List of task states defining the task management FSM. More... | |
Public Types inherited from CEventHandler | |
enum | EDispatch { eDispatch_SelfOnly , eDispatch_AllHandlers , eDispatch_FirstHandler , eDispatch_Default = eDispatch_AllHandlers } |
enum controlling dispatching strategies More... | |
enum | EPoolName { ePool_Default = 0 , ePool_Parent , ePool_Child , ePool_Sibling , ePool_NextAvailable } |
Identifiers for standard pools. More... | |
typedef vector< CEventHandler * > | TListeners |
typedef map< int, TListeners > | TPools |
typedef list< AutoPtr< SPostRequest > > | TPostRequests |
typedef std::map< CEventHandler *, int > | THandlerToCount |
typedef void(* | FOnPostCallback) () |
Public Member Functions | |
CCompositeAppTask (const string &descr=kEmptyStr, bool visible=true) | |
void | OnTaskEvent (CEvent *event) |
IAppTask interface implementation | |
virtual ETaskState | Run () |
execute the task, this function is called on the main UI thread if a task needs to execute in background it should launch a job that will execute asynchronously; then the function shall return eBackgrounded More... | |
virtual void | CancelBackgrounded () |
make a request to cancel backgrounded task (not called for foreground tasks) More... | |
Public Member Functions inherited from CAppTask | |
CAppTask (const string &descr=kEmptyStr, bool visible=true, int display_delay=0) | |
CAppTask. More... | |
virtual ETaskState | GetState () |
returns the current task state More... | |
virtual void | OnCancel () |
this will be called on pending tasks that will be removed from the queue and won't get a chance to run the purpose is to implement any cleanup procedures for the canceled task More... | |
virtual bool | IsVisible () |
returns true if the task should be visible in UI visible task shall represent operations understood by users and usually correspond to menu commands. More... | |
int | GetStatusDisplayDelay () |
returns delay in seconds used for certain fast (and not very important tasks) to only show its status when it is running/pending for long enough More... | |
virtual string | GetDescr () const |
returns a human-readable description of the Task (optional) More... | |
virtual string | GetStatusText () const |
returns human-readable text describing the current task state More... | |
virtual void | SetListener (CEventHandler *handler) |
set a Listener; this allows a taks running in background to notify the Listener (usually Task Manager) about changes in Status More... | |
virtual IEventLogAction * | CreateEventLogAction () |
returns an action for activating task results (optional, can return NULL) More... | |
Public Member Functions inherited from CObjectEx | |
CObjectEx (void) | |
virtual | ~CObjectEx (void) |
Public Member Functions inherited from CObject | |
CObject (void) | |
Constructor. More... | |
CObject (const CObject &src) | |
Copy constructor. More... | |
virtual | ~CObject (void) |
Destructor. More... | |
CObject & | operator= (const CObject &src) THROWS_NONE |
Assignment operator. More... | |
bool | CanBeDeleted (void) const THROWS_NONE |
Check if object can be deleted. More... | |
bool | IsAllocatedInPool (void) const THROWS_NONE |
Check if object is allocated in memory pool (not system heap) More... | |
bool | Referenced (void) const THROWS_NONE |
Check if object is referenced. More... | |
bool | ReferencedOnlyOnce (void) const THROWS_NONE |
Check if object is referenced only once. More... | |
void | AddReference (void) const |
Add reference to object. More... | |
void | RemoveReference (void) const |
Remove reference to object. More... | |
void | ReleaseReference (void) const |
Remove reference without deleting object. More... | |
virtual void | DoNotDeleteThisObject (void) |
Mark this object as not allocated in heap – do not delete this object. More... | |
virtual void | DoDeleteThisObject (void) |
Mark this object as allocated in heap – object can be deleted. More... | |
void * | operator new (size_t size) |
Define new operator for memory allocation. More... | |
void * | operator new[] (size_t size) |
Define new[] operator for 'array' memory allocation. More... | |
void | operator delete (void *ptr) |
Define delete operator for memory deallocation. More... | |
void | operator delete[] (void *ptr) |
Define delete[] operator for memory deallocation. More... | |
void * | operator new (size_t size, void *place) |
Define new operator. More... | |
void | operator delete (void *ptr, void *place) |
Define delete operator. More... | |
void * | operator new (size_t size, CObjectMemoryPool *place) |
Define new operator using memory pool. More... | |
void | operator delete (void *ptr, CObjectMemoryPool *place) |
Define delete operator. More... | |
virtual void | DebugDump (CDebugDumpContext ddc, unsigned int depth) const |
Define method for dumping debug information. More... | |
Public Member Functions inherited from CDebugDumpable | |
CDebugDumpable (void) | |
virtual | ~CDebugDumpable (void) |
void | DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const |
void | DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const |
void | DumpToConsole (void) const |
Public Member Functions inherited from CWeakObject | |
CWeakObject (void) | |
virtual | ~CWeakObject (void) |
CPtrToObjectProxy * | GetPtrProxy (void) const |
Get pointer to proxy object containing pointer to this object. More... | |
Public Member Functions inherited from IAppTask | |
virtual | ~IAppTask () |
Public Member Functions inherited from CEventHandler | |
CEventHandler () | |
CEventHandler. More... | |
virtual | ~CEventHandler () |
virtual void | AddListener (CEventHandler *listener, int pool_name=ePool_Default) |
Add a listener. More... | |
virtual void | RemoveListener (CEventHandler *listener) |
Remove a listener. More... | |
virtual void | RemoveAllListeners (void) |
virtual bool | HasListener (CEventHandler *listener, int pool_name=ePool_Default) const |
returns "true" if the given listener belongs to the specified pool More... | |
virtual const TListeners * | GetListeners (int pool_name=ePool_Default) const |
returns a set of listeners fro the specified pool More... | |
virtual bool | OnEvent (CEvent *evt) |
Processes en event. Returns "true" if event has been processed. More... | |
virtual bool | Dispatch (CEvent *evt, EDispatch disp_how=eDispatch_Default, int pool_name=ePool_Default) |
Dispatches an event to the listeners (but does not handle it). More... | |
virtual bool | Send (CEvent *evt, EDispatch disp_how=eDispatch_Default, int pool_name=ePool_Default) |
Sends an event synchronously. More... | |
virtual bool | Send (CEvent *evt, int pool_name) |
void | Post (CRef< CEvent > evt, EDispatch disp_how=eDispatch_Default, int pool_name=ePool_Default) |
Handles an event asynchronously (process and/or dispatch). More... | |
Protected Member Functions | |
virtual TTaskRef | x_GetCurrentSubTask ()=0 |
returns a references to the current subtask More... | |
virtual TTaskRef | x_NextSubTask ()=0 |
prepares the next subtask (makes it current), this function is used for iterating subtasks. More... | |
virtual ETaskState | x_RunCurrentSubTask () |
runs the current subtask; one may override this function in order to perform special pre-execution or post-execution actions More... | |
Protected Member Functions inherited from CAppTask | |
virtual ETaskState | x_Run () |
override this function in derived classes More... | |
virtual bool | x_IsFiniteState () |
Protected Member Functions inherited from CObject | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
Protected Member Functions inherited from CWeakObject | |
void | CleanWeakRefs (void) const |
Method cleaning all CWeakRefs referencing at this moment to the object After calling to this method all existing CWeakRefs referencing to the object will return NULL, so it effectively will be equal to deleting the object. More... | |
Protected Member Functions inherited from CEventHandler | |
virtual const SEvtMap * | GetEventMap () const |
void | x_DeclareDead () |
Removes itself unavailable for async event delivery. More... | |
void | x_AddListenerToPool (CEventHandler *listener, int pool_name) |
Private Member Functions | |
DECLARE_EVENT_MAP () | |
Additional Inherited Members | |
Static Public Member Functions inherited from CAppTask | |
static string | StateToString (ETaskState state) |
Static Public Member Functions inherited from CObject | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (void) |
Define method to throw null pointer exception. More... | |
static NCBI_XNCBI_EXPORT void | ThrowNullPointerException (const type_info &type) |
static EAllocFillMode | GetAllocFillMode (void) |
static void | SetAllocFillMode (EAllocFillMode mode) |
static void | SetAllocFillMode (const string &value) |
Set mode from configuration parameter value. More... | |
Static Public Member Functions inherited from CDebugDumpable | |
static void | EnableDebugDump (bool on) |
Static Public Member Functions inherited from CEventHandler | |
static bool | HandlePostRequest () |
static void | ClearPostQueue () |
erases all events from the queue More... | |
static void | DestroyPostQueue () |
Static Public Attributes inherited from CObject | |
static const TCount | eCounterBitsCanBeDeleted = 1 << 0 |
Define possible object states. More... | |
static const TCount | eCounterBitsInPlainHeap = 1 << 1 |
Heap signature was found. More... | |
static const TCount | eCounterBitsPlaceMask |
Mask for 'in heap' state flags. More... | |
static const int | eCounterStep = 1 << 2 |
Skip over the "in heap" bits. More... | |
static const TCount | eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2) |
Minimal value for valid objects (reference counter is zero) Must be a single bit value. More... | |
static const TCount | eCounterStateMask |
Valid object, and object in heap. More... | |
Protected Attributes inherited from CAppTask | |
CEventHandler * | m_Listener |
ETaskState | m_State |
const bool | m_Visible |
indicates whether the task is visible More... | |
string | m_Descr |
task description More... | |
int | m_DisplayDelay |
tasks display delay More... | |
Protected Attributes inherited from CEventHandler | |
TPools | m_Pools |
Static Protected Attributes inherited from CEventHandler | |
static const SEvtMap | sm_EvtMap |
CCompositeAppTask - an application task that consists of subtasks.
CCompositeAppTask executes the subtask one by one. If a subtask goes into background (pauses), the composite task also goes into background. If a subtask fails the composite task will also terminate with eFailed status.
Definition at line 97 of file app_task_impl.hpp.
typedef CIRef<IAppTask> CCompositeAppTask::TTaskRef |
Definition at line 103 of file app_task_impl.hpp.
|
virtual |
make a request to cancel backgrounded task (not called for foreground tasks)
Reimplemented from CAppTask.
Definition at line 260 of file app_task_impl.cpp.
References IAppTask::eBackgrounded, CAppTask::m_Listener, CAppTask::m_State, NULL, and x_GetCurrentSubTask().
|
private |
void CCompositeAppTask::OnTaskEvent | ( | CEvent * | event | ) |
Definition at line 275 of file app_task_impl.cpp.
References _ASSERT, IAppTask::eBackgrounded, CEvent::GetID(), CAppTaskServiceEvent::GetTask(), CAppTask::m_Listener, CAppTask::m_State, CEventHandler::Post(), and x_GetCurrentSubTask().
|
virtual |
execute the task, this function is called on the main UI thread if a task needs to execute in background it should launch a job that will execute asynchronously; then the function shall return eBackgrounded
Reimplemented from CAppTask.
Definition at line 198 of file app_task_impl.cpp.
References _ASSERT, IAppTask::eBackgrounded, IAppTask::eCompleted, IAppTask::eFailed, IAppTask::eInitial, IAppTask::eRunning, kChildFailed, CAppTask::m_State, NULL, TASK_CATCH_AND_REPORT, x_GetCurrentSubTask(), x_NextSubTask(), and x_RunCurrentSubTask().
|
protectedpure virtual |
returns a references to the current subtask
Implemented in CBlastSearchTask.
Referenced by CancelBackgrounded(), OnTaskEvent(), Run(), and x_RunCurrentSubTask().
|
protectedpure virtual |
prepares the next subtask (makes it current), this function is used for iterating subtasks.
Implemented in CBlastSearchTask.
Referenced by Run().
|
protectedvirtual |
runs the current subtask; one may override this function in order to perform special pre-execution or post-execution actions
Reimplemented in CBlastSearchTask.
Definition at line 254 of file app_task_impl.cpp.
References x_GetCurrentSubTask().
Referenced by Run(), and CBlastSearchTask::x_RunCurrentSubTask().