X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Document.h;h=569a588db71fee40bad246eb2213fbc893cf26bc;hb=216439f38d7dd618833b75c5dcb640915a62ba77;hp=fbda69941454765aba8e1be88e169ef2f871cc14;hpb=ea51c1575cfdc7e3ad0b8cc1db55d9d83626b12d;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index fbda6994..569a588d 100644 --- a/src/HYDROData/HYDROData_Document.h +++ b/src/HYDROData/HYDROData_Document.h @@ -2,10 +2,12 @@ #define HYDROData_Document_HeaderFile #include -#include +#include #include +class QFile; + /** * Errors that could appear on document open/save actions. * If there is no error, it is "OK". @@ -39,9 +41,17 @@ public: //! Returns the existing document or creates new if it is not exist HYDRODATA_EXPORT static Handle(HYDROData_Document) Document(const int theStudyID); + //! Returns the document by object + HYDRODATA_EXPORT static Handle(HYDROData_Document) Document( + const TDF_Label& theObjectLabel ); + //! Returns true if data model contains document for this study HYDRODATA_EXPORT static bool HasDocument(const int theStudyID); + //! Get study id by document instance, if document doesn't exists return false + HYDRODATA_EXPORT static bool DocumentId( const Handle(HYDROData_Document)& theDocument, + int& theDocId ); + //! Loads the OCAF document from the file. //! \param theFileName full name of the file to load //! \param theStudyID identifier of the SALOME study to associate with loaded file @@ -56,6 +66,17 @@ public: //! Removes document data HYDRODATA_EXPORT void Close(); + // Returns name of document instance in python dump script + HYDRODATA_EXPORT QString GetDocPyName() const; + + //! Dump study document to Python script representation. + //! \param theFileName full name of the file to store + //! \returns true if document has been successfuly dumped + HYDRODATA_EXPORT bool DumpToPython( const QString& theFileName ) const; + + //! Dump model data to Python script representation. + HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const; + //! Starts a new operation (opens a tansaction) HYDRODATA_EXPORT void StartOperation(); //! Finishes the previously started operation (closes the transaction) @@ -89,7 +110,7 @@ public: //! Creates and locates in the document a new object //! \param theKind kind of the created object, can not be UNKNOWN //! \returns the created object - HYDRODATA_EXPORT Handle_HYDROData_Object CreateObject(const ObjectKind theKind); + HYDRODATA_EXPORT Handle(HYDROData_Entity) CreateObject(const ObjectKind theKind); protected: @@ -97,17 +118,28 @@ protected: friend class test_HYDROData_Document; //! Creates new document: private because "Document" method must be used instead of direct creation. - HYDROData_Document(); + HYDRODATA_EXPORT HYDROData_Document(); //! Creates new document by existing OCAF structure - HYDROData_Document(const Handle(TDocStd_Document)& theDoc); + HYDRODATA_EXPORT HYDROData_Document(const Handle(TDocStd_Document)& theDoc); //! Deletes all high-level data, managed this document - ~HYDROData_Document(); + HYDRODATA_EXPORT ~HYDROData_Document(); //! Returns the new identifier of the new object (may be used for correct ordering of objects) HYDRODATA_EXPORT int NewID(); //! Returns the label where the objects are located (used by Iterator) - TDF_Label LabelOfObjects(); + HYDRODATA_EXPORT TDF_Label LabelOfObjects(); + +private: + + // Dump header Python part in to file \c theFile + bool DumpToPython( QFile& theFile, + MapOfTreatedObjects& theTreatedObjects ) const; + + // Dump objects of type \c theObjectKind to file \c theFile + bool dumpPartitionToPython( QFile& theFile, + MapOfTreatedObjects& theDumpedObjects, + const ObjectKind& theObjectKind ) const; private: Handle(TDocStd_Document) myDoc; ///< OCAF document instance corresponding for keeping all persistent data