summaryrefslogtreecommitdiff
path: root/src/win32/winService.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/winService.h')
-rw-r--r--src/win32/winService.h22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/win32/winService.h b/src/win32/winService.h
index 6867c7c..e2bab90 100644
--- a/src/win32/winService.h
+++ b/src/win32/winService.h
@@ -40,39 +40,25 @@
class WinService
{
public:
- static WinService& instance();
#define SVC_NAME "anytun"
static void install();
static void uninstall();
static void start();
- void waitForStop();
- void stop();
-
static VOID WINAPI main(DWORD dwArgc, LPTSTR *lpszArgv);
static VOID WINAPI ctrlHandler(DWORD dwCtrl);
+
+ void reportStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode);
+ int handleCtrlSignal(const SigNum& sig, const std::string& msg);
+
private:
WinService() : started_(false) {};
~WinService();
WinService(const WinService &w);
void operator=(const WinService &w);
- void reportStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint=0);
-
- static WinService* inst;
- static Mutex instMutex;
- class instanceCleaner {
- public: ~instanceCleaner() {
- if(WinService::inst != NULL)
- delete WinService::inst;
- }
- };
- friend class instanceCleaner;
-
- bool started_;
SERVICE_STATUS status_;
SERVICE_STATUS_HANDLE status_handle_;
- HANDLE stop_event_;
};
extern WinService& gWinService;