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
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
lsst::pex.policy::PolicyConfigured Class Reference

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
 

Detailed Description

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.

Member Typedef Documentation

Definition at line 80 of file PolicyConfigured.h.

Definition at line 79 of file PolicyConfigured.h.

Definition at line 81 of file PolicyConfigured.h.

Constructor & Destructor Documentation

lsst::pex.policy::PolicyConfigured::PolicyConfigured ( const PolicyPtr policy)
inline

configure this class with a policy.

Parameters
policya 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.

88 : _policy(policy) { }
lsst::pex.policy::PolicyConfigured::PolicyConfigured ( )
inline

construct without configuration from a policy

Definition at line 93 of file PolicyConfigured.h.

lsst::pex.policy::PolicyConfigured::~PolicyConfigured ( )
virtual

delete this interface

Definition at line 32 of file PolicyConfigured.cc.

32 { }

Member Function Documentation

void lsst::pex.policy::PolicyConfigured::configured ( )
inlineprotected

indicate that this object is now configured. This will cause isConfigured() to return true

Definition at line 143 of file PolicyConfigured.h.

void lsst::pex.policy::PolicyConfigured::done ( )
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.

void lsst::pex.policy::PolicyConfigured::forgetPolicy ( )
inlineprotected

set the policy pointer to null

Definition at line 137 of file PolicyConfigured.h.

137 { _policy.reset((Policy*)0); }
static PolicySourcePtr lsst::pex.policy::PolicyConfigured::getDefaultPolicySource ( )
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.

121  {
122  return PolicySourcePtr();
123  }
boost::shared_ptr< PolicySource > PolicySourcePtr
ConstPolicyPtr lsst::pex.policy::PolicyConfigured::getPolicy ( ) const
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.

108 { return _policy; }
PolicyPtr lsst::pex.policy::PolicyConfigured::getPolicy ( )
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.

132 { return _policy; }
bool lsst::pex.policy::PolicyConfigured::isConfigured ( ) const
inline

return true if this object has been configured

Definition at line 113 of file PolicyConfigured.h.

Member Data Documentation

bool lsst::pex.policy::PolicyConfigured::_configured
private

Definition at line 155 of file PolicyConfigured.h.

PolicyPtr lsst::pex.policy::PolicyConfigured::_policy
private

Definition at line 154 of file PolicyConfigured.h.


The documentation for this class was generated from the following files: