Boost logo

Boost :

Subject: [boost] Is there any interest in a library for Application System? (Request for comments)
From: Renato Tegon Forti (re.tf_at_[hidden])
Date: 2012-01-05 06:34:32


Some detail (Brainstorm):

This library will provide a simple way to create an application that can be:

. A Server Application

         A server application usually starts when system boot, and then
remain running as background process, don't matter who is currently logged.

         In Windows this will a "Windows Service" and in UNIX a "UNIX
Daemon", and we can create a "Neutral Application" that is not a daemon and
service, but uses "service interface" that will provide methods like an
"init", "interrogate", "restart" and so on.

         Some type of "system global mutex" will be implemented in this
flavor, then if user want, he can determine that only one instance of
service will run in a system in same time.

         A web server, data base server and so on area examples.

   . A Usual Application

         A usual application is a normal application, that don't need all of
features provided by "server application" usually is started by a user and
run by a determined period.

         A command, mail client, MPI master/Slave and so on area examples.

   . Base Class

        Both classes will be derivated of environment class that will
provide common thinks and proprieties like an "app path", "app name", "app
work dir" and so on.

For sample:

A user that want create a server, extend your class of "server class" and
then override methods that want to get needed behavior.

// windows service, or daemon
class myapp : public boost::application::server{};

// neutral server
class myapp : public boost::application::server<neutral>{};

// usual application
class myapp : public boost::application::app{};

Note that:

        1) Application can be configured using Boost.Program_options

        2) I want use Boost.Log to provide log functionality when available.

        3) I want create a "service model" then I want use Boost.Extension
to provide dynamically late bind extension (Pluf-in System).

What Boosters think? This is useful or is fool lib?

Boosters think that "this kind of lib" is very specific, and violate: "The
library must be generally useful and not restricted to a narrow problem
domain." or this kind of system is relevant to boost.

Please let me know the correct way to follows! Please make suggestions!

What more else?

Thanks


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk