#include <ace/NT_Service.h>
class ACE_NT_Service : public ACE_Task<ACE_MT_SYNCH> {
public:
ACE_NT_Service ( DWORD start_timeout = ACE_NT_SERVICE_START_TIMEOUT, DWORD service_type = SERVICE_WIN32_OWN_PROCESS, DWORD controls_mask = SERVICE_ACCEPT_STOP );
virtual ~ACE_NT_Service (void);
virtual int open (void *args = 0);
virtual int svc (void) = 0;
virtual void handle_control (DWORD control_code);
void svc_handle (const SERVICE_STATUS_HANDLE new_svc_handle);
ACE_ALLOC_HOOK_DECLARE;
protected:
int report_status (DWORD new_status, DWORD time_hint = 0);
DWORD start_time_;
SERVICE_STATUS_HANDLE svc_handle_;
SERVICE_STATUS svc_status_;
};
ACE_NT_Service (
DWORD start_timeout = ACE_NT_SERVICE_START_TIMEOUT,
DWORD service_type = SERVICE_WIN32_OWN_PROCESS,
DWORD controls_mask = SERVICE_ACCEPT_STOP
);
virtual ~ACE_NT_Service (void);
virtual int open (void *args = 0);
virtual int svc (void) = 0;
virtual void handle_control (DWORD control_code);
void svc_handle (const SERVICE_STATUS_HANDLE new_svc_handle);
ACE_ALLOC_HOOK_DECLARE;