// CkTaskChainW.h: interface for the CkTaskChainW class. // ////////////////////////////////////////////////////////////////////// // This header is generated for Chilkat 11.3.0 #ifndef _CkTaskChainW_H #define _CkTaskChainW_H #include "chilkatDefs.h" #include "CkString.h" #include "CkClassWithCallbacksW.h" class CkTaskW; class CkBaseProgressW; #if !defined(__sun__) && !defined(__sun) #pragma pack (push, 8) #endif // CLASS: CkTaskChainW class CK_VISIBLE_PUBLIC CkTaskChainW : public CkClassWithCallbacksW { private: bool m_cbOwned; private: // Don't allow assignment or copying these objects. CkTaskChainW(const CkTaskChainW &); CkTaskChainW &operator=(const CkTaskChainW &); public: CkTaskChainW(void); virtual ~CkTaskChainW(void); static CkTaskChainW *createNew(void); CkTaskChainW(bool bCallbackOwned); static CkTaskChainW *createNew(bool bCallbackOwned); void CK_VISIBLE_PRIVATE inject(void *impl); // May be called when finished with the object to free/dispose of any // internal resources held by the object. void dispose(void); CkBaseProgressW *get_EventCallbackObject(void) const; void put_EventCallbackObject(CkBaseProgressW *progress); // BEGIN PUBLIC INTERFACE // ---------------------- // Properties // ---------------------- // true if the task status is canceled , aborted , or completed . A task chain // can only reach the canceled status if it was activated via the Run method, made // it onto the internal thread pool thread's queue, was waiting for a pool thread // to become available, and was then canceled prior to the task actually starting. bool get_Finished(void); // The number of milliseconds between each AbortCheck event callback. The // AbortCheck callback allows an application to abort the Wait method. If // HeartbeatMs is 0 (the default), no AbortCheck event callbacks will fire. Note: // An asynchronous task chain running in a background thread (in one of the thread // pool threads) does not fire events. The task chain's event callbacks pertain // only to the Wait method. int get_HeartbeatMs(void); // The number of milliseconds between each AbortCheck event callback. The // AbortCheck callback allows an application to abort the Wait method. If // HeartbeatMs is 0 (the default), no AbortCheck event callbacks will fire. Note: // An asynchronous task chain running in a background thread (in one of the thread // pool threads) does not fire events. The task chain's event callbacks pertain // only to the Wait method. void put_HeartbeatMs(int newVal); // true if the task status is empty or loaded . When a task chain is inert, it // has been loaded but is not scheduled to run yet. bool get_Inert(void); // true if the task status is queued or running . When a task chain is live, it // is either already running, or is on the thread pool thread's queue waiting for a // thread to become available. bool get_Live(void); // The number of tasks contained within the task chain. int get_NumTasks(void); // The current status of the task chain. Possible values are: // * empty -- No tasks have yet been appended to the task chain. // * loaded -- The task chain has been loaded (appended) with one or more task // objects. // * queued -- The task chain is in the thread pool's queue of tasks awaiting // to be run. // * running -- The task chain is currently running. // * canceled -- The task chain was canceled before it entered the running // state. // * aborted -- The task chain was canceled while it was in the running state. // * completed -- The task chain completed. void get_Status(CkString &str); // The current status of the task chain. Possible values are: // * empty -- No tasks have yet been appended to the task chain. // * loaded -- The task chain has been loaded (appended) with one or more task // objects. // * queued -- The task chain is in the thread pool's queue of tasks awaiting // to be run. // * running -- The task chain is currently running. // * canceled -- The task chain was canceled before it entered the running // state. // * aborted -- The task chain was canceled while it was in the running state. // * completed -- The task chain completed. const wchar_t *status(void); // The current status of the task as an integer value. Possible values are: // * 1 -- empty -- No tasks have yet been appended to the task chain. // * 2 -- loaded -- The task chain has been loaded (appended) with one or more // task objects. // * 3 -- queued -- The task chain is in the thread pool's queue of tasks // awaiting to be run. // * 4 -- running -- The task chain is currently running. // * 5 -- canceled -- The task chain was canceled before it entered the running // state. // * 6 -- aborted -- The task chain was canceled while it was in the running // state. // * 7 -- completed -- The task chain completed. int get_StatusInt(void); // If true then stops execution of the task chain if any individual task fails. // Task failure is defined by the standard LastMethodSuccess property. If false, // then all of the tasks in the chain will be run even if some fail. The default // value of this property is true. bool get_StopOnFailedTask(void); // If true then stops execution of the task chain if any individual task fails. // Task failure is defined by the standard LastMethodSuccess property. If false, // then all of the tasks in the chain will be run even if some fail. The default // value of this property is true. void put_StopOnFailedTask(bool newVal); // ---------------------- // Methods // ---------------------- // Appends a task to the task chain. Can fail if the task is already part of // another chain. (A task can only be part of a single chain.) bool Append(CkTaskW &task); // Cancels execution of the asynchronous task chain. bool Cancel(void); // Returns the Nth task in the chain. The 1st task is at index 0. // The caller is responsible for deleting the object returned by this method. CkTaskW *GetTask(int index); // {=nodejs}If a taskCompleted callback function is passed in , then the task chain // is started on Node's internal thread pool. Each task in the chain will run, one // after the other. If no callback function is passed, the task chain runs // synchronously.{nodejs=} {=other}Queues the task chain to run on the internal // Chilkat thread pool. Each task in the chain will run, one after the // other.{other=} bool Run(void); // Runs the task chain synchronously. Then this method returns after all the tasks // in the chain have been run. bool RunSynchronously(void); // Convenience method to force the calling thread to sleep for a number of // milliseconds. void SleepMs(int numMs); // Waits for the task chain to complete. Returns when all of the tasks in the chain // have completed, or after maxWaitMs milliseconds have elapsed. (A maxWaitMs value of 0 is // to wait indefinitely.) Returns (false) if the task chain has not yet been // started by calling the Run method, or if the maxWaitMs expired. If the task chain // completed, was already completed, was canceled, or aborted, then this method // returns true. bool Wait(int maxWaitMs); // END PUBLIC INTERFACE }; #if !defined(__sun__) && !defined(__sun) #pragma pack (pop) #endif #endif