LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
|
an interface to indicate that a class is configured with a Policy More...
#include <PolicyConfigured.h>
Public Types | |
typedef Policy::Ptr | PolicyPtr |
typedef Policy::ConstPtr | ConstPolicyPtr |
typedef boost::shared_ptr < PolicySource > | PolicySourcePtr |
Public Member Functions | |
PolicyConfigured (const PolicyPtr &policy) | |
PolicyConfigured () | |
virtual | ~PolicyConfigured () |
ConstPolicyPtr | getPolicy () const |
bool | isConfigured () const |
Static Public Member Functions | |
static PolicySourcePtr | getDefaultPolicySource () |
Protected Member Functions | |
PolicyPtr | getPolicy () |
void | forgetPolicy () |
void | configured () |
virtual void | done () |
Private Attributes | |
PolicyPtr | _policy |
bool | _configured |
an interface to indicate that a class is configured with a Policy
The purpose of this class is to provide a uniform way of delivering a Policy instance to an object that needs one. A class that expects to configure itself with a Policy should inherit from this class (typically via multi-inheritance). It should also provide a constructor that takes a const PolicyPtr reference as a parameter (which it can passed to the PolicyConfigured constructor).
The intended workflow for use of this API allows for uniform collaboration between the class to be configured–the target–and the object that will create an instance of the class–the user. The user first calls the target class's getDefaultPolicySource() static function. The user uses this to construct an initial Policy. The policy data is then overridden by the user based either on a runtime-specified Policy file or via a Policy it has been given. The user then constructs the target instance, passing in the updated Policy object to the target's constructor.
The target is then free to use Policy data as it needs to by first calling its getPolicy() function. A few other functions (some of which are protected so that only the target can call them) are provided to help manage the configuration process. When the configuration is complete, it may call configured(); its isConfigured() function (which initially returns false) will now return true. Alternatively, it may call its done() method, which both calls configured() and releases its copy of the policy pointer (via forgetPolicy()). Subclasses may override this done() to trigger other post-configuration activities. The target is not obligated to ever call configured() or done() (currently no pex-related module depends on it); however, the target itself or its collaborators may find this useful.
The driving use case is pex/harness module which uses this API to configure Stage objects that make up a pipeline.
Definition at line 77 of file PolicyConfigured.h.
Definition at line 80 of file PolicyConfigured.h.
Definition at line 79 of file PolicyConfigured.h.
typedef boost::shared_ptr<PolicySource> lsst::pex.policy::PolicyConfigured::PolicySourcePtr |
Definition at line 81 of file PolicyConfigured.h.
|
inline |
configure this class with a policy.
policy | a pointer (which may be null) pointing to a policy that should be used to configure this class. |
Definition at line 88 of file PolicyConfigured.h.
|
inline |
|
virtual |
|
inlineprotected |
indicate that this object is now configured. This will cause isConfigured() to return true
Definition at line 143 of file PolicyConfigured.h.
|
protectedvirtual |
indicate that this object is done with the policy provided in the constructor. The default implementation does two things: (1) calls configured(), and (2) calls forgetPolicy(). Subclasses may override this function.
Definition at line 34 of file PolicyConfigured.cc.
|
inlineprotected |
|
inlinestatic |
return a PolicySource pointer that can be used to create a default Policy for instances of this class. This implementation returns a null pointer. Subclasses may override this function, usually returning a pointer to a DefaultPolicyFile.
Definition at line 121 of file PolicyConfigured.h.
|
inline |
return the policy that is being used to configure this object. This is usually the policy that was passed to this object at construction time. The returned pointer may be null if no such policy is available. The const return type is to indicate that external users should not attempt to update the contents of the returned policy.
Definition at line 108 of file PolicyConfigured.h.
|
inlineprotected |
return the policy that should be used to configure this object. The returned pointer may be null. This class may change it contents for internal purposes.
Definition at line 132 of file PolicyConfigured.h.
|
inline |
|
private |
Definition at line 155 of file PolicyConfigured.h.
|
private |
Definition at line 154 of file PolicyConfigured.h.