- Implemented PythonPolicyManager::collect_policies()

- Integrated PythonPolicyManager with PoliciesGatekeeper

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@620 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
elvez 2006-06-12 13:16:10 +00:00
parent c5d78f3547
commit 65ed285807
5 changed files with 79 additions and 12 deletions

View file

@ -20,20 +20,27 @@
#include "policy_manager.hh"
#include "policies_gatekeeper.hh"
PolicyManager*
PolicyManager::_registered = NULL;
PolicyManager::PolicyManager()
{
//FIXME remove this when get_registered_manager is dropped
_registered = this;
PoliciesGatekeeper::get_instance().register_manager(this);
}
PolicyManager::~PolicyManager()
{
// This check is necessary:
//FIXME remove this when get_registered_manager is dropped
if(_registered == this) _registered = NULL;
PoliciesGatekeeper::get_instance().unregister_manager(this);
}
PolicyManager&
@ -41,3 +48,4 @@ PolicyManager::get_registered_manager()
{
return *_registered;
}

View file

@ -53,22 +53,30 @@ namespace sgpem
Gets THE policy (the only today) used.
Next versions will implement some other kind.
\return A reference to the policy.
FIXME deprecated
*/
virtual Policy& get_policy() = 0;
/**
Init (or reset if yet initialized) the manager.
FIXME deprecated
*/
virtual void init() = 0;
virtual std::vector<Policy*> get_avail_policies() = 0;
/** \brief Get the registered manager instance
* FIXME deprecated
*
* \return The registered policy manager instance.
*/
static PolicyManager& get_registered_manager();
protected:
virtual void collect_policies() = 0;
std::vector<Policy*> _policies;
private:
/** A pointer to the registered instance */
static PolicyManager* _registered;