LSSTApplications  19.0.0-14-gb0260a2+d60062ef16,20.0.0+1540ce6389,20.0.0+7c6b12c2f9,20.0.0+ae956f52c5,20.0.0+be870186d9,20.0.0+e2e26847c2,20.0.0-1-g10df615+7683e4f082,20.0.0-1-g253301a+7c6b12c2f9,20.0.0-1-g2b7511a+46a6078777,20.0.0-1-g3dda6ea+606b36f8c0,20.0.0-1-g4d801e7+901ee84527,20.0.0-1-g5b95a8c+a5fa15ec54,20.0.0-1-gb058bd0+46a6078777,20.0.0-1-gb88604f+acecce4127,20.0.0-1-gc96f8cb+61a4a056b1,20.0.0-1-gedffbd8+4f0e391d5e,20.0.0-10-g0891cd99+aadc987f3e,20.0.0-10-g9a20bd332+576ca7b471,20.0.0-17-gcdbda88+ed0d4927ab,20.0.0-2-g4dae9ad+61a4a056b1,20.0.0-2-g61b8584+85c46248f3,20.0.0-2-gb780d76+f45b7d88f4,20.0.0-2-gf072044+7c6b12c2f9,20.0.0-21-g9bbb7f7+61a4a056b1,20.0.0-22-gc512666+9eba1c4719,20.0.0-23-g8900aa8+68630f7098,20.0.0-3-g1653f94+85c46248f3,20.0.0-3-g4cc78c6+63636aeed8,20.0.0-3-g750bffe+e05f822de9,20.0.0-3-gbd60e8c+ff10c6d78d,20.0.0-32-g15a0e07c+ff1c9f120b,20.0.0-4-g97dc21a+68630f7098,20.0.0-4-gfea843c+f45b7d88f4,20.0.0-5-g357b56b+f45b7d88f4,20.0.0-6-g9a5b7a1+2c4171520d,20.0.0-61-g4de25fb+e4dd172200,20.0.0-7-gcda7bf1+85e953d7e4,w.2020.43
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | 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 std::shared_ptr< PolicySourcePolicySourcePtr
 

Public Member Functions

 PolicyConfigured (const PolicyPtr &policy)
 configure this class with a policy. More...
 
 PolicyConfigured ()
 construct without configuration from a policy More...
 
virtual ~PolicyConfigured ()
 delete this interface More...
 
ConstPolicyPtr getPolicy () const
 return the policy that is being used to configure this object. More...
 
bool isConfigured () const
 return true if this object has been configured More...
 

Static Public Member Functions

static PolicySourcePtr getDefaultPolicySource ()
 return a PolicySource pointer that can be used to create a default Policy for instances of this class. More...
 

Protected Member Functions

PolicyPtr getPolicy ()
 return the policy that should be used to configure this object. More...
 
void forgetPolicy ()
 set the policy pointer to null More...
 
void configured ()
 indicate that this object is now configured. More...
 
virtual void done ()
 indicate that this object is done with the policy provided in the constructor. More...
 

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

◆ ConstPolicyPtr

Definition at line 80 of file PolicyConfigured.h.

◆ PolicyPtr

Definition at line 79 of file PolicyConfigured.h.

◆ PolicySourcePtr

Definition at line 81 of file PolicyConfigured.h.

Constructor & Destructor Documentation

◆ PolicyConfigured() [1/2]

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) {}

◆ PolicyConfigured() [2/2]

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

construct without configuration from a policy

Definition at line 93 of file PolicyConfigured.h.

93 : _policy() {}

◆ ~PolicyConfigured()

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

delete this interface

Definition at line 32 of file PolicyConfigured.cc.

32 {}

Member Function Documentation

◆ configured()

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

indicate that this object is now configured.

This will cause isConfigured() to return true

Definition at line 140 of file PolicyConfigured.h.

140 { _configured = true; }

◆ done()

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.

34  {
35  configured();
36  forgetPolicy();
37 }

◆ forgetPolicy()

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

set the policy pointer to null

Definition at line 134 of file PolicyConfigured.h.

134 { _policy.reset((Policy*)0); }

◆ getDefaultPolicySource()

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 { return PolicySourcePtr(); }

◆ getPolicy() [1/2]

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 129 of file PolicyConfigured.h.

129 { return _policy; }

◆ getPolicy() [2/2]

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; }

◆ isConfigured()

bool lsst.pex::policy::PolicyConfigured::isConfigured ( ) const
inline

return true if this object has been configured

Definition at line 113 of file PolicyConfigured.h.

113 { return _configured; }

The documentation for this class was generated from the following files:
lsst.pex::policy::PolicyConfigured::PolicySourcePtr
std::shared_ptr< PolicySource > PolicySourcePtr
Definition: PolicyConfigured.h:81
std::shared_ptr::reset
T reset(T... args)
lsst.pex::policy::PolicyConfigured::configured
void configured()
indicate that this object is now configured.
Definition: PolicyConfigured.h:140
lsst.pex::policy::PolicyConfigured::forgetPolicy
void forgetPolicy()
set the policy pointer to null
Definition: PolicyConfigured.h:134