X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsc_test.c;h=e88ddca87d3964e285007de2cc388120ea90bcec;hp=05810fcc2331ca4bc05d3a701adcbc9e3b11c480;hb=5c1eb188e9cf6f0dd2e435a1f81938f258515edb;hpb=ec7571c09ddbe4580775d3a8a60271a657ae02a6 diff --git a/src/sc_test.c b/src/sc_test.c index 05810fc..e88ddca 100644 --- a/src/sc_test.c +++ b/src/sc_test.c @@ -1,12 +1,14 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ - /** * \file sc_test.c * \brief Small test for the Windows Service Control utility */ +#if HAVE_CONFIG_H +#include +#endif #ifdef WIN32 #include @@ -15,17 +17,28 @@ #endif #include +#include #include #include #include #include +#ifdef WIN32 + +/** \brief handle that is used to stop that service should be stopped */ HANDLE default_stop_event = NULL; + +/** \brief stop handler which just signals "stop" */ static void default_sc_stop(yaz_sc_t s) { SetEvent(default_stop_event); } +/** \brief service control main + This does not read argc and argv. + Real applications would typically do that. It is very important that + yaz_sc_running is called before the application starts to operate . +*/ static int default_sc_main(yaz_sc_t s, int argc, char **argv) { default_stop_event = CreateEvent( @@ -43,19 +56,26 @@ static int default_sc_main(yaz_sc_t s, int argc, char **argv) return 0; } +#endif +/** \brief the system main function */ int main(int argc, char **argv) { +#ifdef WIN32 yaz_sc_t s = yaz_sc_create("yaz_sc_test", "YAZ Service Control Test"); yaz_sc_program(s, argc, argv, default_sc_main, default_sc_stop); yaz_sc_destroy(&s); +#else + printf("Only on Windows\n"); +#endif exit(0); } /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab