git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@365 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
tchernobog 2006-02-21 10:31:01 +00:00
parent 7d58c965ff
commit ea70e2f092
3 changed files with 39 additions and 38 deletions

View File

@ -1,8 +1,6 @@
import sgpem
from Abstract import * from Abstract import *
class Policy(sgpem.Policy): class Policy:
## @var Avoid instantiation of an abstract class ## @var Avoid instantiation of an abstract class
__metaclass__ = Metaclass __metaclass__ = Metaclass
@ -10,3 +8,4 @@ class Policy(sgpem.Policy):
sort_queue = AbstractMethod('sort_queue') sort_queue = AbstractMethod('sort_queue')
is_preemptive = AbstractMethod('is_preemptive') is_preemptive = AbstractMethod('is_preemptive')
is_time_sliced = AbstractMethod('is_time_sliced') is_time_sliced = AbstractMethod('is_time_sliced')

View File

@ -26,8 +26,8 @@ using namespace sgpem;
//static object //static object
PythonPolicyManager* PythonPolicyManager::_instance = NULL; PythonPolicyManager* PythonPolicyManager::_instance = NULL;
PythonPolicyManager::PythonPolicyManager()
PythonPolicyManager::PythonPolicyManager() //private constructor. The parameter is discarded : _initialized(false)
{ {
} }
@ -49,13 +49,11 @@ PythonPolicyManager::get_policy()
void void
PythonPolicyManager::init() PythonPolicyManager::init()
{ {
static bool initialized = false; if(_initialized)
if(initialized)
Py_Finalize(); Py_Finalize();
Py_Initialize(); Py_Initialize();
initialized = true; _initialized = true;
// The following line is ugly, but necessary if we use // The following line is ugly, but necessary if we use
// non-standard installation directories. Theoretically, // non-standard installation directories. Theoretically,

View File

@ -36,7 +36,6 @@ namespace sgpem
class SG_DLLEXPORT PythonPolicyManager : public PolicyManager class SG_DLLEXPORT PythonPolicyManager : public PolicyManager
{ {
public: public:
Policy& get_policy(); Policy& get_policy();
void init(); void init();
PyObject* get_py_dict(); PyObject* get_py_dict();
@ -44,9 +43,14 @@ namespace sgpem
static PythonPolicyManager& get_instance(); static PythonPolicyManager& get_instance();
private: private:
PythonPolicyManager(); //dummy parameter PythonPolicyManager();
PythonPolicyManager(const PythonPolicyManager&);
PythonPolicyManager& operator=(const PythonPolicyManager&);
static PythonPolicyManager* _instance; static PythonPolicyManager* _instance;
std::auto_ptr<PythonPolicy> _python_policy; std::auto_ptr<PythonPolicy> _python_policy;
bool _initialized;
}; };
} }