class Poco::Util::Subsystem
Overview
Subsystems extend an application in a modular way. More…
#include <Subsystem.h> class Subsystem: public Poco::RefCountedObject { public: // methods virtual const char* name() const = 0; protected: // methods virtual void initialize(Application& app) = 0; virtual void uninitialize() = 0; virtual void reinitialize(Application& app); virtual void defineOptions(OptionSet& options); }; // direct descendants class Application; class LoggingSubsystem;
Inherited Members
public: // methods void duplicate() const; void release() const; int referenceCount() const;
Detailed Documentation
Subsystems extend an application in a modular way.
The Subsystem class provides a common interface for subsystems so that subsystems can be automatically initialized at startup and uninitialized at shutdown.
Subsystems should also support dynamic reconfiguration, so that they can be reconfigured anytime during the life of a running application.
The degree to which dynamic reconfiguration is supported is up to the actual subsystem implementation. It can range from ignoring the reconfiguration request (not recommended), to changing certain settings that affect the performance, to a complete reinitialization.
Methods
virtual const char* name() const = 0
Returns the name of the subsystem.
Must be implemented by subclasses.
virtual void initialize(Application& app) = 0
Initializes the subsystem.
virtual void uninitialize() = 0
Uninitializes the subsystem.
virtual void reinitialize(Application& app)
Re-initializes the subsystem.
The default implementation just calls uninitialize() followed by initialize(). Actual implementations might want to use a less radical and possibly more performant approach.
virtual void defineOptions(OptionSet& options)
Called before the Application ‘s command line processing begins.
If a subsystem wants to support command line arguments, it must override this method. The default implementation does not define any options.
To effectively handle options, a subsystem should either bind the option to a configuration property or specify a callback to handle the option.