VR-Forces 4.0.4 Class Documentation
include/vrvCigi/DtSharedCigiSettings.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtSharedCigiSettings.h,v $ $Revision: 1.23 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #ifndef DtSharedCigiSettings_H_
00014 #define DtSharedCigiSettings_H_
00015 
00016 #include <vrvCigi/vrvCigi.h>
00017 #include <vrvCore/DtSharedSettings.h>
00018 #include <vrvCore/DtSettingsBackup.h>
00019 
00020 #include <makArchives/DtCigiSettingsRecord.h>
00021 
00022 #include <string>
00023 #include <map>
00024 
00025 namespace makVrv
00026 {
00027    class DtCigiSettingsBackup;
00028 
00036    class DT_DLL_VRVCIGI DtSharedCigiSettings : public DtSharedSettings
00037    {
00038    public:
00039       typedef std::pair<makArchives::DtCigiSettingsRecord*, DtCigiSettingsBackup*>  DtCigiSettingsPair;
00040       typedef std::map<std::string, DtCigiSettingsPair> StringToSettingsMap;
00041 
00044       friend class DtReadSettingsLock<DtSharedCigiSettings>;
00045       friend class DtWriteSettingsLock<DtSharedCigiSettings>;
00046       friend class DtSharedSettingsManager;
00047       
00051       static std::string className();
00052 
00054       virtual ~DtSharedCigiSettings();
00055 
00057       virtual void addCigiSettings(const std::string& settingsName);
00058 
00061       virtual void setCigiSettings(const std::string& settingsName,
00062          const makArchives::DtCigiSettingsRecord& record);
00063 
00065       virtual void removeCigiSettings(const std::string& settingsName);
00066 
00068       virtual void setCurrentSettingsName(const std::string& settingsName);
00069 
00071       virtual const makArchives::DtCigiSettingsRecord* currentSettings() const;
00072 
00074       virtual const std::string& currentSettingsName() const;
00075 
00078       virtual makArchives::DtCigiSettingsRecord* findCigiSettingsByName(
00079          const std::string& settingsName);
00080 
00082       virtual const makArchives::DtCigiSettingsRecord* findCigiSettingsByName(
00083          const std::string& settingsName) const;
00084 
00086       virtual bool definitionInUse(const std::string& def) const;
00087 
00091       virtual const std::string& mapEntityModelDefinition(int entType) const;
00092 
00096       virtual const std::string& mapEntityModelSchemaName(int entType) const;
00097 
00099       virtual StringToSettingsMap::const_iterator begin() const;
00100       virtual StringToSettingsMap::const_iterator end() const;
00101 
00103       virtual unsigned int settingsCount() const;
00104 
00107       virtual const std::string& findDatabaseFilename(int databaseNumber);
00108 
00111       virtual const std::string& findAnimationName(int animationId);
00112 
00115       virtual const std::vector<std::string>& componentStrings(
00116          makArchives::DtCigiComponentClass compClass) const;
00117 
00119       virtual const DtSettingsBackup* settingsBackup(const std::string& name) const;
00120       virtual DtSettingsBackup* settingsBackup(const std::string& name);
00121 
00122    public:
00124       virtual void addModelStateMapping(int cigiId, int stateId);
00125 
00127       virtual void removeModelStateMapping(int cigiId);
00128 
00130       virtual void setArtPartMapping(int entType, int cigiId, int disId);
00131 
00133       virtual void removeArtPartMapping(int entType, int cigiId);
00134 
00136       virtual void addDatabaseMapping(int databaseNumber, const std::string& filename);
00137 
00139       virtual void removeDatabaseMapping(int databaseNumber);
00140 
00142       virtual void addComponentIdMapping(makArchives::DtCigiComponentClass compClass,
00143          int compId, const std::string& compName);
00144 
00147       virtual void removeComponentIdMapping(makArchives::DtCigiComponentClass compClass,
00148          int compId);
00149 
00151       virtual void addAnimationMapping(int animationId, const std::string& animationName);
00152 
00154       virtual void removeAnimationMapping(int animationId);
00155 
00156    public:
00157 
00159       virtual void setEntityTypeModelMapping(int entType, 
00160          const std::string& modelName, const std::string& schemaName);
00161 
00163       virtual void removeEntityTypeModelMapping(int entType);
00164 
00166       virtual bool remapEntityType(int oldType, int newType);
00167 
00170       virtual bool renameModelDefinition(const std::string& oldName, const std::string& newName, std::vector<std::string>& mappersChanged);
00171 
00172    protected:
00173 
00175       DtSharedCigiSettings(DtSharedSettingsManager& manager);
00176       
00177    protected:
00179       std::string myEmptyMapping;
00180 
00181       StringToSettingsMap                          mySettingsByName;
00182       std::string                                  myCurrentSettingsName;
00183       makArchives::DtCigiSettingsRecord*           myCurrentSettings;
00184       std::vector<std::string>                     myEntityComponentStrings;
00185       std::vector<std::string>                     myViewComponentStrings;
00186       std::vector<std::string>                     mySystemComponentStrings;
00187    };
00188    
00191    class DT_DLL_VRVCIGI DtCigiSettingsBackup : public DtSettingsBackup
00192    {
00193    public:
00194       DtCigiSettingsBackup(makArchives::DtCigiSettingsRecord*, const std::string& name);
00195 
00196       virtual ~DtCigiSettingsBackup();
00197 
00198       const makArchives::DtCigiSettingsRecord& restoredCigiSettings() const
00199       {
00200          return myRestoredCigiSettings;
00201       }
00202 
00203       const makArchives::DtCigiSettingsRecord* cigiSettings() const
00204       {
00205          return myCigiSettings;
00206       }
00207 
00208       void setCigiSettings(makArchives::DtCigiSettingsRecord* r)
00209       {
00210          myCigiSettings = r;
00211       }
00212 
00213    protected:
00216       virtual void restore(const DtSettingsBackup* from);
00217 
00220       virtual std::string backupClassType() const;
00221 
00224       virtual DtSettingsBackup* create() const;
00225 
00228       virtual void write(boost::archive::xml_oarchive& ar);
00229 
00232       virtual void read(boost::archive::xml_iarchive& ar);
00233 
00235       virtual std::string backupName() const;
00236 
00237    protected:
00238       makArchives::DtCigiSettingsRecord*  myCigiSettings;
00239       makArchives::DtCigiSettingsRecord   myRestoredCigiSettings;
00240       std::string                         myName;
00241    };
00242 }
00243 
00244 #endif
00245 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)