// File: TObj_Assistant.hxx // Created: Mon Nov 22 16:57:12 2004 // Author: Pavel TELKOV // Copyright: Open CASCADE 2007 // The original implementation Copyright: (C) RINA S.p.A #ifndef TObj_Assistant_HeaderFile #define TObj_Assistant_HeaderFile #include class Handle(TObj_Model); class TColStd_SequenceOfTransient; class TColStd_SequenceOfAsciiString; class TColStd_IndexedMapOfTransient; //! This class provides interface to the static data //! to be used during save or load models. //! //! Static data: //! 1. DataMap of Modeller name - handle to model to be used in loading of references //! 2. Indexed map of Standard_Type to be used during save or load of object type //! 3. Handle to the current model - model that is loaded at the current moment class TObj_Assistant { public: /** * Interface for DataMap of Modeller name */ //! Finds model by name static Standard_EXPORT Handle(TObj_Model) FindModel (const Standard_CString theName); //! Binds model to the map static Standard_EXPORT void BindModel (const Handle(TObj_Model) theModel); //! Clears all records from the model map static Standard_EXPORT void ClearModelMap (); public: /** * Interface for Map of Standard Types */ //! Finds Standard_Type by index; //! returns NULL handle if not found static Standard_EXPORT Handle(Standard_Type) FindType (const Standard_Integer theTypeIndex); //! Rinds index by Standard_Type; //! returns 0 if not found static Standard_EXPORT Standard_Integer FindTypeIndex (const Handle(Standard_Type)& theType); //! Binds Standard_Type to the map; //! returns index of bound type static Standard_EXPORT Standard_Integer BindType (const Handle(Standard_Type)& theType); //! Clears map of types static Standard_EXPORT void ClearTypeMap (); public: /** * Interface to the current model */ //! Sets current model static Standard_EXPORT void SetCurrentModel (const Handle(TObj_Model)& theModel); //! Returns current model static Standard_EXPORT Handle(TObj_Model) GetCurrentModel(); //! Unsets current model static Standard_EXPORT void UnSetCurrentModel (); public: //! Returns the version of application which wrote the currently read document. //! Returns 0 if it has not been set yet for the current document. static Standard_EXPORT Standard_Integer GetAppVersion(); private: //! Method for taking fields for map of models static Standard_EXPORT TColStd_SequenceOfTransient& getModels(); //! Method for taking fields for map types static Standard_EXPORT TColStd_IndexedMapOfTransient& getTypes(); //! Method for taking fields for the Current model static Standard_EXPORT Handle(TObj_Model)& getCurrentModel(); //! Returns application version static Standard_EXPORT Standard_Integer& getVersion(); }; #endif #ifdef _MSC_VER #pragma once #endif