class Poco::Util::WinService

Overview

This class provides an object-oriented interface to the Windows Service Control Manager for registering, unregistering, configuring, starting and stopping services. More…

#include <WinService.h>

class WinService
{
public:
    // enums

    enum Startup;

    // fields

    static const int STARTUP_TIMEOUT;

    // construction

    WinService(const std::string& name);

    // methods

    const std::string&
    name() const;

    std::string
    displayName() const;

    std::string
    path() const;

    void
    registerService(
        const std::string& path,
        const std::string& displayName
        );

    void
    registerService(const std::string& path);

    void
    unregisterService();

    bool
    isRegistered() const;

    bool
    isRunning() const;

    void
    start();

    void
    stop();

    void
    setStartup(Startup startup);

    Startup
    getStartup() const;

    void
    setDescription(const std::string& description);

    std::string
    getDescription() const;

protected:
    // fields

    static const std::string REGISTRY_KEY;
    static const std::string REGISTRY_DESCRIPTION;
};

Detailed Documentation

This class provides an object-oriented interface to the Windows Service Control Manager for registering, unregistering, configuring, starting and stopping services.

This class is only available on Windows platforms.

Construction

WinService(const std::string& name)

Creates the WinService, using the given service name.

Methods

const std::string&
name() const

Returns the service name.

std::string
displayName() const

Returns the service’s display name.

std::string
path() const

Returns the path to the service executable.

Throws a NotFoundException if the service has not been registered.

void
registerService(
    const std::string& path,
    const std::string& displayName
    )

Creates a Windows service with the executable specified by path and the given displayName.

Throws a ExistsException if the service has already been registered.

void
registerService(const std::string& path)

Creates a Windows service with the executable specified by path and the given displayName.

The service name is used as display name.

Throws a ExistsException if the service has already been registered.

void
unregisterService()

Deletes the Windows service.

Throws a NotFoundException if the service has not been registered.

bool
isRegistered() const

Returns true if the service has been registered with the Service Control Manager.

bool
isRunning() const

Returns true if the service is currently running.

void
start()

Starts the service.

Does nothing if the service is already running.

Throws a NotFoundException if the service has not been registered.

void
stop()

Stops the service.

Does nothing if the service is not running.

Throws a NotFoundException if the service has not been registered.

void
setStartup(Startup startup)

Sets the startup mode for the service.

Startup
getStartup() const

Returns the startup mode for the service.

void
setDescription(const std::string& description)

Sets the service description in the registry.

std::string
getDescription() const

Returns the service description from the registry.