114 lines
3.4 KiB
C
114 lines
3.4 KiB
C
|
|
// CkBaseProgress.h: interface for the CkBaseProgress class.
|
||
|
|
//
|
||
|
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
#ifndef _CKBASEPROGRESS_H
|
||
|
|
#define _CKBASEPROGRESS_H
|
||
|
|
|
||
|
|
#include "CkObject.h"
|
||
|
|
|
||
|
|
#if !defined(BOOL_IS_TYPEDEF) && !defined(OBJC_BOOL_DEFINED)
|
||
|
|
#ifndef BOOL
|
||
|
|
#define BOOL int
|
||
|
|
#endif
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef TRUE
|
||
|
|
#define TRUE 1
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef FALSE
|
||
|
|
#define FALSE 0
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if !defined(WIN32) && !defined(WINCE)
|
||
|
|
#include "SystemTime.h"
|
||
|
|
#include "FileTime.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "ck_inttypes.h"
|
||
|
|
|
||
|
|
class CkTask;
|
||
|
|
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (push, 8)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
// This #define is deprecated and will be removed in a future version of Chilkat.
|
||
|
|
#define CK_BASEPROGRESS_API \
|
||
|
|
void AbortCheck(bool *abort);\
|
||
|
|
void PercentDone(int pctDone, bool *abort);\
|
||
|
|
void ProgressInfo(const char *name, const char *value);\
|
||
|
|
void TextData(const char *data);\
|
||
|
|
void BinaryData(const unsigned char *data, unsigned int numBytes);\
|
||
|
|
void TaskCompleted(CkTask &task);
|
||
|
|
|
||
|
|
|
||
|
|
class CK_VISIBLE_PUBLIC CkBaseProgress : public CkObject
|
||
|
|
{
|
||
|
|
protected:
|
||
|
|
void *m_impl;
|
||
|
|
|
||
|
|
// No copy constructor or assignment allowed..
|
||
|
|
CkBaseProgress(const CkBaseProgress &);
|
||
|
|
CkBaseProgress &operator=(const CkBaseProgress &);
|
||
|
|
|
||
|
|
public:
|
||
|
|
CkBaseProgress();
|
||
|
|
virtual ~CkBaseProgress();
|
||
|
|
|
||
|
|
// This method is for internal use only.
|
||
|
|
void *getProgressImpl(void);
|
||
|
|
|
||
|
|
// Called periodically to check to see if the method call should be aborted.
|
||
|
|
// The HeartbeatMs property controls the frequency of AbortCheck callbacks.
|
||
|
|
virtual void AbortCheck(bool *abort)
|
||
|
|
{
|
||
|
|
bool bAborted = AbortCheck();
|
||
|
|
if (abort) *abort = bAborted;
|
||
|
|
}
|
||
|
|
// Return true if the method call should abort; return false for no abort.
|
||
|
|
virtual bool AbortCheck(void)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Called to indicate the current percentage completed for a method call.
|
||
|
|
// PercentDone callbacks only happen where it makes sense and where it's possible.
|
||
|
|
// Not all methods will have PercentDone callbacks.
|
||
|
|
virtual void PercentDone(int pctDone, bool *abort)
|
||
|
|
{
|
||
|
|
bool bAborted = PercentDone(pctDone);
|
||
|
|
if (abort) *abort = bAborted;
|
||
|
|
}
|
||
|
|
// Return true if the method call should abort; return false for no abort.
|
||
|
|
virtual bool PercentDone(int /*pctDone*/)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Open-ended callback where the name indicates the type of information provided.
|
||
|
|
// The ProgressInfo callbacks depend on the method.
|
||
|
|
// To see what information is provided in ProgressInfo callbacks for any particular method,
|
||
|
|
// if any, create a callback handler to log the callbacks for testing purposes.
|
||
|
|
// Virtually all ProgressInfo callbacks should be self-explanatory.
|
||
|
|
virtual void ProgressInfo(const char * /*name*/, const char * /*value*/) { }
|
||
|
|
|
||
|
|
// Called when an asynchronous task completes, is aborted, canceled, etc.
|
||
|
|
// TaskCompleted is called from the background thread where the asynchronous method call is running.
|
||
|
|
virtual void TaskCompleted(CkTask & /*task*/) { }
|
||
|
|
|
||
|
|
// comment out the parameters names of TextData and BinaryData methods to stop unnecessary warnings being emitted about unused parameters
|
||
|
|
// TextData and BinaryData callbacks are not used.
|
||
|
|
// These are deprecated and will be removed in a future version of Chilkat.
|
||
|
|
virtual void TextData(const char * /*data*/) { }
|
||
|
|
virtual void BinaryData(const unsigned char * /*data*/, unsigned int /*numBytes*/) { }
|
||
|
|
|
||
|
|
};
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (pop)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
#endif
|