X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=WCudaMSE%2FAPI_Bilat_Canvas_JNI%2FINC%2FScenarioManager.h;fp=WCudaMSE%2FAPI_Bilat_Canvas_JNI%2FINC%2FScenarioManager.h;h=39b49d796d00a1729b21d498988f90f4e744c3a6;hb=8d08c12b29c2a14684f35c023ee39e694bb80d25;hp=0000000000000000000000000000000000000000;hpb=226de81f7e1f1fbf4ac79d0d089e8a05ec7159a0;p=GPU.git diff --git a/WCudaMSE/API_Bilat_Canvas_JNI/INC/ScenarioManager.h b/WCudaMSE/API_Bilat_Canvas_JNI/INC/ScenarioManager.h new file mode 100755 index 0000000..39b49d7 --- /dev/null +++ b/WCudaMSE/API_Bilat_Canvas_JNI/INC/ScenarioManager.h @@ -0,0 +1,77 @@ +#ifndef SCENARIOMANAGER_H_ +#define SCENARIOMANAGER_H_ +#include "envCanvasJNI.h" +#include "Scenario.h" + +#include +using std::map; + +#include +//#include +using std::mutex; + +/*----------------------------------------------------------------------*\ + |* Declaration *| + \*---------------------------------------------------------------------*/ + +// Probleme: + // La destruction de l'objet Scenario + // + // Solution: + // Enregistrer cette instance dans le ScenarioManager + // + // Implementation: + // ScenarioManager est une map de type + // + // Principe: + // + // Lorsque cote java la methode finalize est appeler sur la canvasJava, l'id du CanvasNative associe est passer en natif. + // Ce canvasNativeID est passer au ScenarioManager qui se charge de d�rtuire le secenario associ� � cet id + // + // ScenarioManager::getInstance()->unregister(canvasNativeID) // efface le scenario, fait automatiquement, transparent pour l'utilisateur + // + // Conclusion: + // Il est necessaire de registrer tout nouveau scenario! + // Ceci se fait en appelant la methode d'instance register sur votre scenario apr�s son instanciation + // + // myScenarion->register() + // + + +/*--------------------------------------*\ + |* Public *| + \*-------------------------------------*/ + +class CBI_CANVAS_JNI ScenarioManager + { + public: + /*--------------------------------------*\ + |* Destructor *| + \*-------------------------------------*/ + + virtual ~ScenarioManager(); + + static ScenarioManager* getInstance(); + + void registerScenario(Scenario* ptrScenario); + + void unregister(int canvasNativeID); + + Scenario* getScenario(int canvasNativeID); + + private: + ScenarioManager(); + private: + //Tools + map mapPanelIDImageScenario; + mutex mutexMap; + + // Singleton + static ScenarioManager* instance; + }; + +#endif + +/*----------------------------------------------------------------------*\ + |* End *| + \*---------------------------------------------------------------------*/