lsst.pex.policy  16.0-3-g404ea43+11
PolicyConfigured.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008, 2009, 2010 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
32 #ifndef LSST_PEX_POLICY_POLICYCONFIGURED_H
33 #define LSST_PEX_POLICY_POLICYCONFIGURED_H
34 
36 #include "lsst/pex/policy/Policy.h"
37 
38 namespace lsst {
39 namespace pex {
40 namespace policy {
41 
78 public:
82 
88  PolicyConfigured(const PolicyPtr& policy) : _policy(policy) { }
89 
93  PolicyConfigured() : _policy() { }
94 
98  virtual ~PolicyConfigured();
99 
108  ConstPolicyPtr getPolicy() const { return _policy; }
109 
113  bool isConfigured() const { return _configured; }
114 
121  static PolicySourcePtr getDefaultPolicySource() {
122  return PolicySourcePtr();
123  }
124 
125 protected:
126 
132  PolicyPtr getPolicy() { return _policy; }
133 
137  void forgetPolicy() { _policy.reset((Policy*)0); }
138 
143  void configured() { _configured = true; }
144 
151  virtual void done();
152 
153 private:
154  PolicyPtr _policy;
155  bool _configured;
156 
157 };
158 
159 }}} // end namespace lsst::pex::policy
160 
161 
162 
163 #endif // LSST_PEX_POLICY_POLICYCONFIGURED_H
void forgetPolicy()
set the policy pointer to null
an interface to indicate that a class is configured with a Policy
definition of the PolicyFile class
virtual ~PolicyConfigured()
delete this interface
PolicyConfigured()
construct without configuration from a policy
a container for holding hierarchical configuration data in memory.
Definition: Policy.h:169
static PolicySourcePtr getDefaultPolicySource()
return a PolicySource pointer that can be used to create a default Policy for instances of this class...
PolicyPtr getPolicy()
return the policy that should be used to configure this object.
T reset(T... args)
ConstPolicyPtr getPolicy() const
return the policy that is being used to configure this object.
virtual void done()
indicate that this object is done with the policy provided in the constructor.
void configured()
indicate that this object is now configured.
PolicyConfigured(const PolicyPtr &policy)
configure this class with a policy.
std::shared_ptr< PolicySource > PolicySourcePtr
bool isConfigured() const
return true if this object has been configured