85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
/***************************************************************************
|
|
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<string> &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<CSourceData*> m_srcdata;
|
|
|
|
pthread_mutex_t m_notifymutex;
|
|
};
|
|
|
|
#endif // __JOBMANAGER_H__
|