/*************************************************************************** Job Manager ----------------------------------------- begin : 2012/05/14 copyright : (C) 2011 SolutionBox Inc. author : Service 1 Team email : svc1@solbox.com version : 3.1.0 CopyRight(C) 2011 SolutionBox Inc. All Rights reserved. Redistribution and use in source and binary forms, with or with out modification, are not permitted in outside of SolutionBox Inc. ***************************************************************************/ #ifndef __JOBMANAGER_H__ #define __JOBMANAGER_H__ class CSourceData; class jobmanager { public: jobmanager(JOB_TYPE::JOB_TYPE type, const char* syncpath); ~jobmanager(); int run(); bool runsync(); pthread_t getjobhandle() {return m_hthread;} void setexit(bool v) { m_exit = v; } bool isexit() { return m_exit; } void setsyncfilename(const char* path) {m_tmppath.m_syncpath = path; } string getsyncfilenmae() { return m_tmppath.m_syncpath; } int worknotify(short success); void printstatus(string prefixed = ""); private: static void* WorkFn(void* pdata); static void cleanup(void* pdata); void cleandata(); bool gettargethostlist(string path, vector &vechost); bool waiting(); int64_t getfileline(const char* path); private: //* class tmpdataspath { public: string m_syncpath; }; class jobstatus { public: jobstatus() : m_diff(0), m_work(0), m_launcherfail(0), m_success(0),m_error(0) {} public: int64_t m_diff; int64_t m_work; int64_t m_launcherfail; int64_t m_success; int64_t m_error; }; JOB_TYPE::JOB_TYPE m_type; tmpdataspath m_tmppath; jobstatus m_status; bool m_exit; pthread_t m_hthread; vector m_srcdata; pthread_mutex_t m_notifymutex; }; #endif // __JOBMANAGER_H__