home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 275 / DPCS0111DVD.ISO / Toolkit / Audio-Visual / VirtualDub / Source / VirtualDub-1.9.10-src.7z / src / h / vd2 / VDLib / Job.h < prev    next >
Encoding:
C/C++ Source or Header  |  2009-09-14  |  2.6 KB  |  105 lines

  1. #ifndef f_VD2_VDLIB_JOB_H
  2. #define f_VD2_VDLIB_JOB_H
  3.  
  4. #include <vd2/system/VDString.h>
  5. #include <vd2/system/log.h>
  6.  
  7. class VDJob;
  8.  
  9. class IVDJobQueue {
  10. public:
  11.     virtual bool IsLocal(const VDJob *job) const = 0;
  12.     virtual void Refresh(VDJob *job) = 0;
  13.     virtual void Run(VDJob *job) = 0;
  14.     virtual void Reload(VDJob *job) = 0;
  15. };
  16.  
  17. class VDJob {
  18. public:
  19.     enum {
  20.         kStateWaiting        = 0,
  21.         kStateInProgress    = 1,
  22.         kStateCompleted        = 2,
  23.         kStatePostponed        = 3,
  24.         kStateAborted        = 4,
  25.         kStateError            = 5,
  26.         kStateAborting        = 6,
  27.         kStateStarting        = 7,
  28.         kStateCount            = 8
  29.     };
  30.  
  31.     IVDJobQueue    *mpJobQueue;
  32.  
  33.     uint32        mCreationRevision;
  34.     uint32        mChangeRevision;
  35.     uint64        mId;
  36.     uint64        mDateStart;        ///< Same units as NT FILETIME.
  37.     uint64        mDateEnd;        ///< Same units as NT FILETIME.
  38.  
  39.     typedef VDAutoLogger::tEntries tLogEntries;
  40.     tLogEntries    mLogEntries;
  41.  
  42.     /////
  43.     VDJob();
  44.     ~VDJob();
  45.  
  46.     bool operator==(const VDJob& job) const;
  47.  
  48.     bool    IsLocal() const { return !mpJobQueue || mpJobQueue->IsLocal(this); }
  49.  
  50.     const char *    GetName() const                { return mName.c_str(); }
  51.     void            SetName(const char *name)    { mName = name; }
  52.  
  53.     const char *    GetInputFile() const            { return mInputFile.c_str(); }
  54.     void            SetInputFile(const char *file)    { mInputFile = file; }
  55.     void            SetInputFile(const wchar_t *file);
  56.  
  57.     const char *    GetOutputFile() const            { return mOutputFile.c_str(); }
  58.     void            SetOutputFile(const char *file)    { mOutputFile = file; }
  59.     void            SetOutputFile(const wchar_t *file);
  60.  
  61.     const char *    GetError() const                { return mError.c_str(); }
  62.     void            SetError(const char *err)        { mError = err; }
  63.  
  64.     const char *    GetRunnerName() const            { return mRunnerName.c_str(); }
  65.     uint64            GetRunnerId() const                { return mRunnerId; }
  66.  
  67.     bool    IsRunning() const { return mState == kStateInProgress || mState == kStateAborting; }
  68.     bool    IsModified() const { return mbModified; }
  69.     void    SetModified(bool mod) { mbModified = mod; }
  70.  
  71.     int        GetState() const { return mState; }
  72.     void    SetState(int state);
  73.  
  74.     uint64    GetId() const { return mId; }
  75.  
  76.     void    SetRunner(uint64 id, const char *name);
  77.  
  78.     bool    IsReloadMarkerPresent() const { return mbContainsReloadMarker; }
  79.  
  80.     void    SetScript(const void *script, uint32 len, bool reloadable);
  81.     const char *GetScript() const { return mScript.c_str(); }
  82.  
  83.     void Refresh();
  84.     void Run();
  85.     void Reload();
  86.  
  87.     bool Merge(const VDJob& src);
  88.  
  89.     VDStringA    ToString() const;
  90.  
  91.     uint64        mRunnerId;
  92.     VDStringA    mRunnerName;
  93. protected:
  94.     VDStringA    mName;
  95.     VDStringA    mInputFile;
  96.     VDStringA    mOutputFile;
  97.     VDStringA    mError;
  98.     VDStringA    mScript;
  99.     int            mState;
  100.     bool        mbContainsReloadMarker;
  101.     bool        mbModified;
  102. };
  103.  
  104. #endif
  105.