Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Stroika::Frameworks::Service Namespace Reference

Classes

class  Main
 

Detailed Description

Note
Code-Status: Beta

TODO:

 @todo   Do a better job handling default/reasonable timeout time for service to start/stop/restart.
         Hacked something mostly for UNIX.

 @todo   Window service not fully working - see why when you start/stop we don't see
         Logger::Get ().Log (Logger::eNotice, L"User-service code is shut down");
         message printed out. Basic startup/shutdown seems roughly OK though.

 @todo   Fix Main::BasicUNIXServiceImpl::SignalHandler_() use of static variable. Race conditions
         accessing static var. Use instance var and proper locking.

 @todo   Fix Main::BasicUNIXServiceImpl::SignalHandler_ on kSIG_ReReadConfiguration to somehow q message
         to re-read, and not invoke re-read from thread (avoid possible deadlock with allocating mem in signal handler).

 @todo   Fix majorly hacked (and unsafe anyhow cuz of malloc in signal handler)
         stuff. Righjt now needed to make Sercice STOP work under posix, but its
         NOT reliably done!!!

         SEE "ADD SAFE SIGNAL HANDLER (DEADLOCK FREE) SUPPORT" in Execution::Signal module

 @todo   Carefully review Windows service code for thread locking and races. Complete missing cases, and
         bullet proof.

 @todo   Support passing extra args to subprocess. For example, if we do --start --logfile=xxx,
         We need the invocation of EXE --Run-As-Service to ALSO take --logfile=xxx param. NYI

 @todo   Add "Starting" and "Stopping" status values to possible states.
         Probably add extra states, and then callback parameter to IApplicationRep::MainLoop()
         so it can callback and say status moved from starting to running. Easier to automatically
         do the stopping/stopped change (cuz we have the hooks).

         Added the startedCB method - just so fewer incompatible API-breaking changes needed in the
         future.

 @todo   Implement/test (it maybe implemented) --ReloadConfiguration operation.

 @todo - Main::CommandNames - consider making these STRING params, and then this could be end-user configurable (good idea!)

 @todo   Main::CommandNames - provide for command aliases.

 @todo   Document clearly the distinction between running service and driver
         to control stop/start etc. Think through relationship between windows
         approahc and unix approach

 @todo   Windoze implementation - supporting the richer set of control mechanism.
         AT LEAST support --stop from command-line (currently broken - but you can use net stop or net start servicename;

 @todo   Support Pause/Continue

Long-Term TODO: