Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-02 08:22:20

0001 // Created on: 1997-10-22
0002 // Created by: Jean-Louis Frenkel
0003 // Copyright (c) 1997-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _CDM_MetaData_HeaderFile
0018 #define _CDM_MetaData_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022 
0023 #include <CDM_DocumentPointer.hxx>
0024 #include <TCollection_ExtendedString.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <Standard_Transient.hxx>
0027 #include <CDM_Document.hxx>
0028 #include <CDM_Application.hxx>
0029 #include <Standard_OStream.hxx>
0030 #include <CDM_MetaDataLookUpTable.hxx>
0031 
0032 class CDM_MetaData;
0033 DEFINE_STANDARD_HANDLE(CDM_MetaData, Standard_Transient)
0034 
0035 class CDM_MetaData : public Standard_Transient
0036 {
0037 
0038 public:
0039   Standard_EXPORT static Handle(CDM_MetaData) LookUp(CDM_MetaDataLookUpTable& theLookUpTable,
0040                                                      const TCollection_ExtendedString& aFolder,
0041                                                      const TCollection_ExtendedString& aName,
0042                                                      const TCollection_ExtendedString& aPath,
0043                                                      const TCollection_ExtendedString& aFileName,
0044                                                      const Standard_Boolean            ReadOnly);
0045 
0046   Standard_EXPORT static Handle(CDM_MetaData) LookUp(CDM_MetaDataLookUpTable& theLookUpTable,
0047                                                      const TCollection_ExtendedString& aFolder,
0048                                                      const TCollection_ExtendedString& aName,
0049                                                      const TCollection_ExtendedString& aPath,
0050                                                      const TCollection_ExtendedString& aVersion,
0051                                                      const TCollection_ExtendedString& aFileName,
0052                                                      const Standard_Boolean            ReadOnly);
0053 
0054   Standard_EXPORT Standard_Boolean IsRetrieved() const;
0055 
0056   Standard_EXPORT Handle(CDM_Document) Document() const;
0057 
0058   //! returns the folder in which the meta-data has to be created
0059   //! or has to be found.
0060   Standard_EXPORT TCollection_ExtendedString Folder() const;
0061 
0062   //! returns the name under which the meta-data has to be created
0063   //! or has to be found.
0064   Standard_EXPORT TCollection_ExtendedString Name() const;
0065 
0066   //! returns the version under which the meta-data has to be found.
0067   //! Warning: raises NoSuchObject from Standard if no Version has been defined
0068   Standard_EXPORT TCollection_ExtendedString Version() const;
0069 
0070   //! indicates that the version has to be taken into account when
0071   //! searching the corresponding meta-data.
0072   Standard_EXPORT Standard_Boolean HasVersion() const;
0073 
0074   Standard_EXPORT TCollection_ExtendedString FileName() const;
0075 
0076   Standard_EXPORT Standard_OStream& Print(Standard_OStream& anOStream) const;
0077   Standard_OStream&                 operator<<(Standard_OStream& anOStream);
0078 
0079   Standard_EXPORT TCollection_ExtendedString Path() const;
0080 
0081   Standard_EXPORT void UnsetDocument();
0082 
0083   Standard_EXPORT Standard_Boolean IsReadOnly() const;
0084 
0085   Standard_EXPORT void SetIsReadOnly();
0086 
0087   Standard_EXPORT void UnsetIsReadOnly();
0088 
0089   //! Dumps the content of me into the stream
0090   Standard_EXPORT void DumpJson(Standard_OStream& theOStream, Standard_Integer theDepth = -1) const;
0091 
0092   friend class CDM_Reference;
0093   friend
0094     //! associates database  information to  a document which
0095     //! has been stored.  The name of the  document is now the
0096     //! name which has beenused to store the data.
0097     Standard_EXPORT void
0098                               CDM_Document::SetMetaData(const Handle(CDM_MetaData)& aMetaData);
0099   friend Standard_EXPORT void CDM_Application::SetDocumentVersion(
0100     const Handle(CDM_Document)& aDocument,
0101     const Handle(CDM_MetaData)& aMetaData) const;
0102 
0103   DEFINE_STANDARD_RTTIEXT(CDM_MetaData, Standard_Transient)
0104 
0105 private:
0106   CDM_MetaData(const TCollection_ExtendedString& aFolder,
0107                const TCollection_ExtendedString& aName,
0108                const TCollection_ExtendedString& aPath,
0109                const TCollection_ExtendedString& aFileName,
0110                const Standard_Boolean            ReadOnly);
0111 
0112   CDM_MetaData(const TCollection_ExtendedString& aFolder,
0113                const TCollection_ExtendedString& aName,
0114                const TCollection_ExtendedString& aPath,
0115                const TCollection_ExtendedString& aVersion,
0116                const TCollection_ExtendedString& aFileName,
0117                const Standard_Boolean            ReadOnly);
0118 
0119   void SetDocument(const Handle(CDM_Document)& aDocument);
0120 
0121   Standard_Integer DocumentVersion(const Handle(CDM_Application)& anApplication);
0122 
0123 private:
0124   Standard_Boolean           myIsRetrieved;
0125   CDM_DocumentPointer        myDocument;
0126   TCollection_ExtendedString myFolder;
0127   TCollection_ExtendedString myName;
0128   TCollection_ExtendedString myVersion;
0129   Standard_Boolean           myHasVersion;
0130   TCollection_ExtendedString myFileName;
0131   TCollection_ExtendedString myPath;
0132   Standard_Integer           myDocumentVersion;
0133   Standard_Boolean           myIsReadOnly;
0134 };
0135 
0136 #endif // _CDM_MetaData_HeaderFile