00001
00007 #ifndef __FASP_MANAGER_H__
00008 #define __FASP_MANAGER_H__
00009
00058
00059
00060 #include "Environment.h"
00061 #include "FaspManagerLocation.h"
00062 #include "FaspManagerFunctor.h"
00063 #include "FaspManagerException.h"
00064 #include "FaspManagerTypes.h"
00065 #include "FaspManagerCommon.h"
00066
00068 namespace Aspera
00069 {
00071 namespace FaspManager
00072 {
00073
00074
00075 class Job;
00076
00077
00079 #define FASP_MGR_IDLE 0x01
00081 #define FASP_MGR_STARTED 0x02
00083 #define FASP_MGR_STOPPED 0x03
00085 #define FASP_MGR_ERROR 0x04
00086
00087
00088
00090 typedef enum mgr_ctrl_t
00091 {
00092 CTRL_NONE = 0,
00093 CTRL_PAUSE = 0x01,
00094 CTRL_RESUME = 0x02,
00095 CTRL_CANCEL = 0x04,
00096 CTRL_UPDATE_RATE = 0x08,
00097 CTRL_UPDATE_MIN = 0x10,
00098 CTRL_UPDATE_POLICY = 0x20,
00099 CTRL_UPDATE = CTRL_UPDATE_RATE | CTRL_UPDATE_MIN | CTRL_UPDATE_POLICY,
00100 } mgr_ctrl_t;
00101
00102 inline mgr_ctrl_t operator|(mgr_ctrl_t a, mgr_ctrl_t b)
00103 { return (mgr_ctrl_t)((int)a | (int)b); }
00104 inline mgr_ctrl_t& operator|=(mgr_ctrl_t& a, mgr_ctrl_t b)
00105 { return (a = (a | b)); }
00106 inline mgr_ctrl_t operator&(mgr_ctrl_t a, mgr_ctrl_t b)
00107 { return (mgr_ctrl_t)((int)a & (int)b); }
00108
00115 class Manager
00116 {
00117
00118 public:
00119
00123 FASP_MANAGER_API static Manager *GetInstance( bool owns_log = true );
00124
00126 FASP_MANAGER_API static void Destroy( );
00127
00136 FASP_MANAGER_API virtual char const* LaunchJob( JobOrder *order, Functor *fnctr ) = 0;
00137
00149 FASP_MANAGER_API virtual void ControlJob( mgr_ctrl_t ctrl, UpdateParams *up_prms, char const* jobid ) = 0;
00150
00162 FASP_MANAGER_API virtual void AddSourcePath( char const* jobid, char const* src_path, char const* dst_path, u_int64_t start=0, u_int64_t end=0 ) = 0;
00163
00171 FASP_MANAGER_API virtual void CancelJob( char const* jobid ) = 0;
00172
00183 FASP_MANAGER_API virtual void StopPersistentJob( char const* jobid ) = 0;
00184
00194 FASP_MANAGER_API virtual void LockPersistentJob( char const* jobid ) = 0;
00195
00203 FASP_MANAGER_API virtual void RemoveJob( char const* jobid ) = 0;
00204
00211 FASP_MANAGER_API virtual void AddCallback( char const* jobid, Functor *fnctr ) = 0;
00212
00217 FASP_MANAGER_API virtual void AddGlobalCallback( Functor *fnctr ) = 0;
00218
00219
00223 FASP_MANAGER_API virtual void RemoveGlobalCallback( Functor *fnctr ) = 0;
00224
00230 FASP_MANAGER_API virtual char const* const* GetJobIdList( ) = 0;
00231
00237 FASP_MANAGER_API virtual JobStats GetJobStats( char const* jobid )= 0;
00238
00245
00248 FASP_MANAGER_API virtual bool ListenForServerSessions(bool On) = 0;
00249
00252 FASP_MANAGER_API virtual void SetDebugLevel(int level) = 0;
00253
00254 protected:
00255
00257 FASP_MANAGER_API Manager( );
00258
00260 FASP_MANAGER_API virtual ~Manager( );
00261 };
00262
00263 }
00264 }
00265
00266 #endif