FFL  1.0
Finfly Foundation Library
Классы | Пространства имен | Макросы
Файл service.h
Граф включаемых заголовочных файлов для service.h:
Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class  ffl::cssc::service
 Базовая служба. Подробнее...
class  ffl::cssc::service::context
 Контекст выполнения службы. Подробнее...
class  ffl::cssc::service::scm
 Контекст запуска c SCM. Подробнее...
class  ffl::cssc::service::console
 Контекст запуска как консольного приложения. Подробнее...

Пространства имен

namespace  ffl
 

Корневое простртанство имен библиотки FFL.


Макросы

#define FFL_CSSC_SERVICE(T)
 Объявление службы.

Подробное описание


Макросы

#define FFL_CSSC_SERVICE (   T)
Макроопределение:
VOID WINAPI service_entry(DWORD _argc, LPSTR* _argv) throw()                    \
{                                                                                                                                               \
        service::main<T, service::scm>(service::WIN32_OWN_PROCESS).run(_argc, (const char**)_argv);\
}                                                                                                                                               \
void console_entry(int _argc, const char** _argv) throw()                               \
{                                                                                                                                               \
        service::main<T, service::console>(service::WIN32_OWN_PROCESS).run(_argc, _argv);                               \
}                                                                                                                                               \
int main(int _argc, const char** _argv) throw()                                                 \
{                                                                                                                                               \
        SERVICE_TABLE_ENTRY s[2];                                                                                       \
        s[0].lpServiceName = "";                                                                                                \
        s[0].lpServiceProc = service_entry;                                                                     \
        s[1].lpServiceName = 0;                                                                                         \
        s[1].lpServiceProc = 0;                                                                                         \
        if(!StartServiceCtrlDispatcher(s))                                                                      \
        {                                                                                                                                       \
                DWORD e = GetLastError();                                                                               \
                if(e == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)                                \
                        console_entry(_argc, _argv);                                                            \
        }                                                                                                                                       \
        return 0;                                                                                                                       \
}

Объявление службы.

Создает экземпляр службы T с именем N. Программа может иметь только один экземпляр службы.

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы