/************************************************************************/
/*  Copyright (C), 2016-2020, [IT], 保留所有权利;
/*  模 块 名：服务的主要处理类;
/*  描    述：;
/*
/*  版    本：[V];	
/*  作    者：[IT];
/*  日    期：[5/6/2016];
/*
/*
/*  注    意：;
/*
/*  修改记录：[IT];
/*  修改日期：;
/*  修改版本：;
/*  修改内容：;
/************************************************************************/

#ifndef __MAIN_PROCESS__
#define __MAIN_PROCESS__

#pragma once

class CMainProcess
{
	CMainProcess(void);
public:
	// 单例对象模式;
	static CMainProcess* GetInstance()
	{
		static CMainProcess* pInstance = NULL;
		if ( pInstance == NULL )
		{
			pInstance = new CMainProcess;
		}

		return pInstance;
	}

	~CMainProcess(void);

protected:
	// 线程控制句柄;
	HANDLE  m_hEvent1;
	// 检查服务线程句柄;
	HANDLE	m_hCheckServices;
	// 线程控制句柄;
	HANDLE  m_hEvent2;
	// 备份数据库线程句柄;
	HANDLE	m_hBackupDatabase;

	// 其他接口;
public:
	// 工作开始函数;	
	void StartWork();
	// 工作结束函数;
	void EndofWork();

	// 检测服务在线线程;
	static DWORD WINAPI CheckSvcStatusThread(LPVOID lpVoid);
	static DWORD WINAPI BackupDatabaseThread(LPVOID lpVoid);

};

#endif