File indexing completed on 2026-09-27 09:17:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _CDM_Document_HeaderFile
0018 #define _CDM_Document_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <CDM_Reference.hxx>
0024 #include <NCollection_List.hxx>
0025 #include <CDM_CanCloseStatus.hxx>
0026 #include <TCollection_ExtendedString.hxx>
0027 #include <NCollection_Sequence.hxx>
0028 #include <Standard_OStream.hxx>
0029
0030 class CDM_MetaData;
0031 class CDM_Application;
0032 class CDM_Reference;
0033 class Resource_Manager;
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066 class CDM_Document : public Standard_Transient
0067 {
0068
0069 public:
0070
0071
0072
0073 Standard_EXPORT virtual void Update(const occ::handle<CDM_Document>& aToDocument,
0074 const int aReferenceIdentifier,
0075 void* const aModifContext);
0076
0077
0078
0079
0080
0081
0082
0083
0084 Standard_EXPORT virtual bool Update(TCollection_ExtendedString& ErrorString);
0085
0086
0087
0088
0089 Standard_EXPORT virtual TCollection_ExtendedString StorageFormat() const = 0;
0090
0091
0092 Standard_EXPORT virtual void Extensions(
0093 NCollection_Sequence<TCollection_ExtendedString>& Extensions) const;
0094
0095
0096
0097
0098 Standard_EXPORT virtual bool GetAlternativeDocument(
0099 const TCollection_ExtendedString& aFormat,
0100 occ::handle<CDM_Document>& anAlternativeDocument);
0101
0102
0103
0104
0105
0106
0107
0108
0109 Standard_EXPORT int CreateReference(const occ::handle<CDM_Document>& anOtherDocument);
0110
0111
0112
0113 Standard_EXPORT void RemoveReference(const int aReferenceIdentifier);
0114
0115
0116 Standard_EXPORT void RemoveAllReferences();
0117
0118
0119
0120
0121 Standard_EXPORT occ::handle<CDM_Document> Document(const int aReferenceIdentifier) const;
0122
0123
0124
0125
0126 Standard_EXPORT bool IsInSession(const int aReferenceIdentifier) const;
0127
0128
0129
0130
0131 Standard_EXPORT bool IsStored(const int aReferenceIdentifier) const;
0132
0133
0134
0135 Standard_EXPORT TCollection_ExtendedString Name(const int aReferenceIdentifier) const;
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145 Standard_EXPORT void UpdateFromDocuments(void* const aModifContext) const;
0146
0147
0148
0149 Standard_EXPORT int ToReferencesNumber() const;
0150
0151
0152
0153 Standard_EXPORT int FromReferencesNumber() const;
0154
0155
0156 Standard_EXPORT bool ShallowReferences(const occ::handle<CDM_Document>& aDocument) const;
0157
0158
0159 Standard_EXPORT bool DeepReferences(const occ::handle<CDM_Document>& aDocument) const;
0160
0161
0162
0163
0164
0165 Standard_EXPORT int CopyReference(const occ::handle<CDM_Document>& aFromDocument,
0166 const int aReferenceIdentifier);
0167
0168
0169 Standard_EXPORT bool IsReadOnly() const;
0170
0171
0172 Standard_EXPORT bool IsReadOnly(const int aReferenceIdentifier) const;
0173
0174 Standard_EXPORT void SetIsReadOnly();
0175
0176 Standard_EXPORT void UnsetIsReadOnly();
0177
0178
0179
0180 Standard_EXPORT void Modify();
0181
0182
0183 Standard_EXPORT int Modifications() const;
0184
0185 Standard_EXPORT void UnModify();
0186
0187
0188
0189
0190
0191 Standard_EXPORT bool IsUpToDate(const int aReferenceIdentifier) const;
0192
0193
0194
0195
0196
0197 Standard_EXPORT void SetIsUpToDate(const int aReferenceIdentifier);
0198
0199
0200 Standard_EXPORT void SetComment(const TCollection_ExtendedString& aComment);
0201
0202
0203 Standard_EXPORT void AddComment(const TCollection_ExtendedString& aComment);
0204
0205
0206 Standard_EXPORT void SetComments(
0207 const NCollection_Sequence<TCollection_ExtendedString>& aComments);
0208
0209
0210
0211 Standard_EXPORT void Comments(NCollection_Sequence<TCollection_ExtendedString>& aComments) const;
0212
0213
0214
0215 Standard_EXPORT const char16_t* Comment() const;
0216
0217 Standard_EXPORT bool IsStored() const;
0218
0219
0220
0221 Standard_EXPORT int StorageVersion() const;
0222
0223
0224
0225
0226 Standard_EXPORT void SetMetaData(const occ::handle<CDM_MetaData>& aMetaData);
0227
0228 Standard_EXPORT void UnsetIsStored();
0229
0230 Standard_EXPORT occ::handle<CDM_MetaData> MetaData() const;
0231
0232 Standard_EXPORT TCollection_ExtendedString Folder() const;
0233
0234
0235 Standard_EXPORT void SetRequestedFolder(const TCollection_ExtendedString& aFolder);
0236
0237 Standard_EXPORT TCollection_ExtendedString RequestedFolder() const;
0238
0239 Standard_EXPORT bool HasRequestedFolder() const;
0240
0241
0242 Standard_EXPORT void SetRequestedName(const TCollection_ExtendedString& aName);
0243
0244
0245
0246
0247 Standard_EXPORT TCollection_ExtendedString RequestedName();
0248
0249 Standard_EXPORT void SetRequestedPreviousVersion(
0250 const TCollection_ExtendedString& aPreviousVersion);
0251
0252 Standard_EXPORT void UnsetRequestedPreviousVersion();
0253
0254 Standard_EXPORT bool HasRequestedPreviousVersion() const;
0255
0256 Standard_EXPORT TCollection_ExtendedString RequestedPreviousVersion() const;
0257
0258
0259 Standard_EXPORT void SetRequestedComment(const TCollection_ExtendedString& aComment);
0260
0261 Standard_EXPORT TCollection_ExtendedString RequestedComment() const;
0262
0263
0264 Standard_EXPORT void LoadResources();
0265
0266 Standard_EXPORT bool FindFileExtension();
0267
0268
0269 Standard_EXPORT TCollection_ExtendedString FileExtension();
0270
0271 Standard_EXPORT bool FindDescription();
0272
0273
0274 Standard_EXPORT TCollection_ExtendedString Description();
0275
0276
0277
0278 Standard_EXPORT bool IsModified() const;
0279
0280 Standard_EXPORT Standard_OStream& Print(Standard_OStream& anOStream) const;
0281 Standard_OStream& operator<<(Standard_OStream& anOStream);
0282
0283 Standard_EXPORT bool IsOpened() const;
0284
0285 Standard_EXPORT void Open(const occ::handle<CDM_Application>& anApplication);
0286
0287 Standard_EXPORT CDM_CanCloseStatus CanClose() const;
0288
0289 Standard_EXPORT void Close();
0290
0291 Standard_EXPORT const occ::handle<CDM_Application>& Application() const;
0292
0293
0294
0295
0296
0297 Standard_EXPORT virtual bool CanCloseReference(const occ::handle<CDM_Document>& aDocument,
0298 const int aReferenceIdentifier) const;
0299
0300
0301
0302
0303
0304 Standard_EXPORT virtual void CloseReference(const occ::handle<CDM_Document>& aDocument,
0305 const int aReferenceIdentifier);
0306
0307
0308
0309
0310
0311 Standard_EXPORT bool IsOpened(const int aReferenceIdentifier) const;
0312
0313 Standard_EXPORT void CreateReference(const occ::handle<CDM_MetaData>& aMetaData,
0314 const int aReferenceIdentifier,
0315 const occ::handle<CDM_Application>& anApplication,
0316 const int aToDocumentVersion,
0317 const bool UseStorageConfiguration);
0318
0319 Standard_EXPORT int CreateReference(const occ::handle<CDM_MetaData>& aMetaData,
0320 const occ::handle<CDM_Application>& anApplication,
0321 const int aDocumentVersion,
0322 const bool UseStorageConfiguration);
0323
0324 Standard_EXPORT int ReferenceCounter() const;
0325
0326
0327
0328
0329
0330 Standard_EXPORT virtual void Update();
0331
0332 Standard_EXPORT occ::handle<CDM_Reference> Reference(const int aReferenceIdentifier) const;
0333
0334 Standard_EXPORT void SetModifications(const int Modifications);
0335
0336 Standard_EXPORT void SetReferenceCounter(const int aReferenceCounter);
0337
0338
0339 Standard_EXPORT void DumpJson(Standard_OStream& theOStream, int theDepth = -1) const;
0340
0341 friend class CDM_Reference;
0342 friend class CDM_ReferenceIterator;
0343 friend class CDM_Application;
0344
0345 DEFINE_STANDARD_RTTIEXT(CDM_Document, Standard_Transient)
0346
0347 protected:
0348 Standard_EXPORT CDM_Document();
0349
0350 Standard_EXPORT ~CDM_Document() override;
0351
0352 bool myResourcesAreLoaded;
0353
0354 private:
0355
0356
0357 Standard_EXPORT occ::handle<Resource_Manager> StorageResource();
0358
0359 Standard_EXPORT void AddToReference(const occ::handle<CDM_Reference>& aReference);
0360
0361 Standard_EXPORT void AddFromReference(const occ::handle<CDM_Reference>& aReference);
0362
0363 Standard_EXPORT void RemoveFromReference(const int aReferenceIdentifier);
0364
0365 NCollection_Sequence<TCollection_ExtendedString> myComments;
0366 NCollection_List<occ::handle<CDM_Reference>> myFromReferences;
0367 NCollection_List<occ::handle<CDM_Reference>> myToReferences;
0368 int myVersion;
0369 int myActualReferenceIdentifier;
0370 int myStorageVersion;
0371 occ::handle<CDM_MetaData> myMetaData;
0372 TCollection_ExtendedString myRequestedComment;
0373 TCollection_ExtendedString myRequestedFolder;
0374 bool myRequestedFolderIsDefined;
0375 TCollection_ExtendedString myRequestedName;
0376 bool myRequestedNameIsDefined;
0377 bool myRequestedPreviousVersionIsDefined;
0378 TCollection_ExtendedString myRequestedPreviousVersion;
0379 TCollection_ExtendedString myFileExtension;
0380 TCollection_ExtendedString myDescription;
0381 bool myFileExtensionWasFound;
0382 bool myDescriptionWasFound;
0383 occ::handle<CDM_Application> myApplication;
0384 };
0385
0386 #endif