204 void configureService(
const std::string&
name);
207 static void setModuleHandle(HMODULE);
227 void configureDaemon(
bool changeDirectory,
bool closeFiles,
const std::string& pidFile);
247 virtual bool start(
int argc,
char* argv[],
int& status) = 0;
283 virtual void error(
const std::string& msg);
295 virtual void trace(
const std::string& msg);
301 virtual void print(
const std::string& msg);
340 Ice::LoggerPtr _logger;
341 Ice::CommunicatorPtr _communicator;
351 void terminateService(DWORD);
352 bool waitForServiceState(SC_HANDLE, DWORD, SERVICE_STATUS&);
353 void showServiceStatus(
const std::string&, SERVICE_STATUS&);
355 SERVICE_STATUS_HANDLE _statusHandle;
356 std::vector<std::string> _serviceArgs;
362 void serviceMain(
int,
const wchar_t*
const[]);
370 bool _changeDirectory;
372 std::string _pidFile;
#define ICE_API
Definition Config.h:197
#define ICE_INT_VERSION
Definition Config.h:272
Collects output and flushes it via a logger method.
Definition LoggerUtil.h:106
LoggerOutput< Service, Service *, &Service::print > ServicePrint
Logger utility class for a literal message.
Definition Service.h:336
void enableInterrupt()
Enables the signal handler to invoke interrupt() when a signal occurs.
virtual bool start(int argc, char *argv[], int &status)=0
Prepares a service for execution, including the creation and activation of object adapters and servan...
void disableInterrupt()
Ignore signals.
int main(const StringSeq &args, const InitializationData &initData=InitializationData(), int version=30711)
The primary entry point for services.
virtual Ice::CommunicatorPtr initializeCommunicator(int &argc, char *argv[], const InitializationData &initData, int version)
Initializes a communicator.
virtual void interrupt()
Notify the service about a signal interrupt.
virtual void warning(const std::string &msg)
Logs a warning.
int main(int argc, const char *const argv[], const InitializationData &initData=InitializationData(), int version=30711)
The primary entry point for services.
LoggerOutput< Service, Service *, &Service::trace > ServiceTrace
Logger utility class for a trace message.
Definition Service.h:331
virtual void trace(const std::string &msg)
Logs trace information.
virtual bool shutdown()
Shutdown the service.
virtual void waitForShutdown()
Blocks until the service shuts down.
virtual void print(const std::string &msg)
Logs a literal message.
Ice::CommunicatorPtr communicator() const
Obtains the communicator created by the service.
virtual void syserror(const std::string &msg)
Logs a system error, which includes a description of the current system error code.
LoggerOutput< Service, Service *, &Service::warning > ServiceWarning
Logger utility class for a warning.
Definition Service.h:326
virtual bool stop()
Cleans up resources after shutting down.
int run(int argc, const char *const argv[], const InitializationData &initData=InitializationData(), int version=30711)
Alternative entry point for services that use their own command-line options.
LoggerOutput< Service, Service *, &Service::error > ServiceError
Logger utility class for an error.
Definition Service.h:321
bool service() const
Indicates whether the program is running as a Win32 service or Unix daemon.
LoggerOutput< Service, Service *, &Service::syserror > ServiceSysError
Logger utility class for a system error.
Definition Service.h:316
void configureDaemon(bool changeDirectory, bool closeFiles, const std::string &pidFile)
Configures the program to run as a Unix daemon.
virtual void error(const std::string &msg)
Logs an error.
std::string name() const
Obtains the program name.
virtual void handleInterrupt(int sig)
Invoked by the signal handler when it catches a signal.
static Service * instance()
Obtains the Service singleton.
bool checkSystem() const
Determines whether the operating system supports running the program as a Win32 service or Unix daemo...
Definition BuiltinSequences.h:56
::std::vector<::std::string > StringSeq
A sequence of strings.
Definition BuiltinSequences.h:96
Encapsulates data to initialize a communicator.
Definition Initialize.h:279