Files
Work/service/ServiceStatus.hpp
2024-08-07 09:16:27 -04:00

157 lines
3.3 KiB
C++

#ifndef _SERVICE_SERVICESTATUS_HPP_
#define _SERVICE_SERVICESTATUS_HPP_
#ifndef _COMMON_WINSVC_HPP_
#include <common/winsvc.hpp>
#endif
class ServiceStatus : private SERVICE_STATUS
{
public:
ServiceStatus(void);
ServiceStatus(DWORD svcType,DWORD svcState,DWORD ctlsAccept,DWORD w32Exit,DWORD svcExit,DWORD ckPoint,DWORD waitHint);
virtual ~ServiceStatus();
DWORD serviceType(void)const;
void serviceType(DWORD serviceType);
DWORD currentState(void)const;
void currentState(DWORD currentState);
DWORD controlsAccepted(void)const;
void controlsAccepted(DWORD controlsAccepted);
DWORD win32ExitCode(void)const;
void win32ExitCode(DWORD win32ExitCode);
DWORD serviceExitCode(void)const;
void serviceExitCode(DWORD serviceExitCode);
DWORD checkPoint(void)const;
void checkPoint(DWORD checkPoint);
DWORD waitHint(void)const;
void waitHint(DWORD waitHint);
SERVICE_STATUS &getSERVICESTATUS(void);
private:
void zeroInit(void);
};
inline
ServiceStatus::ServiceStatus(void)
{
zeroInit();
}
inline
ServiceStatus::ServiceStatus(DWORD svcType,DWORD svcState,DWORD ctlsAccept,DWORD w32Exit,DWORD svcExit,DWORD ckPoint,DWORD waitHint)
{
SERVICE_STATUS::dwServiceType=svcType;
SERVICE_STATUS::dwCurrentState=svcState;
SERVICE_STATUS::dwControlsAccepted=ctlsAccept;
SERVICE_STATUS::dwWin32ExitCode=w32Exit;
SERVICE_STATUS::dwServiceSpecificExitCode=svcExit;
SERVICE_STATUS::dwCheckPoint=ckPoint;
SERVICE_STATUS::dwWaitHint=waitHint;
}
inline
ServiceStatus::~ServiceStatus()
{
}
inline
DWORD ServiceStatus::serviceType(void)const
{
return SERVICE_STATUS::dwServiceType;
}
inline
void ServiceStatus::serviceType(DWORD serviceType)
{
SERVICE_STATUS::dwServiceType=serviceType;
}
inline
DWORD ServiceStatus::currentState(void)const
{
return SERVICE_STATUS::dwCurrentState;
}
inline
void ServiceStatus::currentState(DWORD currentState)
{
SERVICE_STATUS::dwCurrentState=currentState;
}
inline
DWORD ServiceStatus::controlsAccepted(void)const
{
return SERVICE_STATUS::dwControlsAccepted;
}
inline
void ServiceStatus::controlsAccepted(DWORD controlsAccepted)
{
SERVICE_STATUS::dwControlsAccepted=controlsAccepted;
}
inline
DWORD ServiceStatus::win32ExitCode(void)const
{
return SERVICE_STATUS::dwWin32ExitCode;
}
inline
void ServiceStatus::win32ExitCode(DWORD win32ExitCode)
{
SERVICE_STATUS::dwWin32ExitCode=win32ExitCode;
}
inline
DWORD ServiceStatus::serviceExitCode(void)const
{
return SERVICE_STATUS::dwServiceSpecificExitCode;
}
inline
void ServiceStatus::serviceExitCode(DWORD serviceExitCode)
{
SERVICE_STATUS::dwServiceSpecificExitCode=serviceExitCode;
}
inline
DWORD ServiceStatus::checkPoint(void)const
{
return SERVICE_STATUS::dwCheckPoint;
}
inline
void ServiceStatus::checkPoint(DWORD checkPoint)
{
SERVICE_STATUS::dwCheckPoint=checkPoint;
}
inline
DWORD ServiceStatus::waitHint(void)const
{
return SERVICE_STATUS::dwWaitHint;
}
inline
void ServiceStatus::waitHint(DWORD waitHint)
{
SERVICE_STATUS::dwWaitHint=waitHint;
}
inline
SERVICE_STATUS &ServiceStatus::getSERVICESTATUS(void)
{
return *this;
}
inline
void ServiceStatus::zeroInit(void)
{
SERVICE_STATUS::dwServiceType=0;
SERVICE_STATUS::dwCurrentState=0;
SERVICE_STATUS::dwControlsAccepted=0;
SERVICE_STATUS::dwWin32ExitCode=0;
SERVICE_STATUS::dwServiceSpecificExitCode=0;
SERVICE_STATUS::dwCheckPoint=0;
SERVICE_STATUS::dwWaitHint=0;
}
#endif