0029142: Exception on Redo.
[occt.git] / src / TDF / TDF.hxx
CommitLineData
42cf5bc1 1// Created by: DAUTRY Philippe
2// Copyright (c) 1997-1999 Matra Datavision
3// Copyright (c) 1999-2014 OPEN CASCADE SAS
4//
5// This file is part of Open CASCADE Technology software library.
6//
7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
12//
13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
15
16#ifndef _TDF_HeaderFile
17#define _TDF_HeaderFile
18
19#include <Standard.hxx>
20#include <Standard_DefineAlloc.hxx>
21#include <Standard_Handle.hxx>
22
23#include <Standard_Boolean.hxx>
24class Standard_GUID;
25class TCollection_ExtendedString;
26class TDF_Data;
27class TDF_Label;
28class TDF_Attribute;
29class TDF_TagSource;
30class TDF_Reference;
31class TDF_ClosureMode;
32class TDF_ClosureTool;
33class TDF_CopyTool;
34class TDF_CopyLabel;
35class TDF_ComparisonTool;
36class TDF_Transaction;
37class TDF_Delta;
38class TDF_AttributeDelta;
39class TDF_DeltaOnAddition;
40class TDF_DeltaOnForget;
41class TDF_DeltaOnResume;
42class TDF_DeltaOnRemoval;
43class TDF_DeltaOnModification;
44class TDF_DefaultDeltaOnRemoval;
45class TDF_DefaultDeltaOnModification;
46class TDF_ChildIterator;
47class TDF_ChildIDIterator;
48class TDF_DataSet;
49class TDF_RelocationTable;
50class TDF_Tool;
51class TDF_LabelMapHasher;
52class TDF_IDFilter;
53
54
55//! This package provides data framework for binding
56//! features and data structures.
57//!
58//! The feature structure is a tree used to bind
59//! semantic informations about each feature together.
60//!
61//! The only one concrete attribute defined in this
62//! package is the TagSource attribute.This attribute
63//! is used for random creation of child labels under
64//! a given label. Tags are randomly delivered.
65class TDF
66{
67public:
68
69 DEFINE_STANDARD_ALLOC
70
71
72 //! Returns ID "00000000-0000-0000-0000-000000000000",
73 //! sometimes used as null ID.
74 Standard_EXPORT static const Standard_GUID& LowestID();
75
76 //! Returns ID "ffffffff-ffff-ffff-ffff-ffffffffffff".
77 Standard_EXPORT static const Standard_GUID& UppestID();
78
79 //! Sets link between GUID and ProgID in hidden DataMap
80 Standard_EXPORT static void AddLinkGUIDToProgID (const Standard_GUID& ID, const TCollection_ExtendedString& ProgID);
81
82 //! Returns True if there is GUID for given <ProgID> then GUID is returned in <ID>
83 Standard_EXPORT static Standard_Boolean GUIDFromProgID (const TCollection_ExtendedString& ProgID, Standard_GUID& ID);
84
85 //! Returns True if there is ProgID for given <ID> then ProgID is returned in <ProgID>
86 Standard_EXPORT static Standard_Boolean ProgIDFromGUID (const Standard_GUID& ID, TCollection_ExtendedString& ProgID);
87
88
89
90
91protected:
92
93
94
95
96
97private:
98
99
100
101
102friend class TDF_Data;
103friend class TDF_Label;
104friend class TDF_Attribute;
105friend class TDF_TagSource;
106friend class TDF_Reference;
107friend class TDF_ClosureMode;
108friend class TDF_ClosureTool;
109friend class TDF_CopyTool;
110friend class TDF_CopyLabel;
111friend class TDF_ComparisonTool;
112friend class TDF_Transaction;
113friend class TDF_Delta;
114friend class TDF_AttributeDelta;
115friend class TDF_DeltaOnAddition;
116friend class TDF_DeltaOnForget;
117friend class TDF_DeltaOnResume;
118friend class TDF_DeltaOnRemoval;
119friend class TDF_DeltaOnModification;
120friend class TDF_DefaultDeltaOnRemoval;
121friend class TDF_DefaultDeltaOnModification;
122friend class TDF_ChildIterator;
123friend class TDF_ChildIDIterator;
124friend class TDF_DataSet;
125friend class TDF_RelocationTable;
126friend class TDF_Tool;
127friend class TDF_LabelMapHasher;
128friend class TDF_IDFilter;
129
130};
131
132
133
134
135
136
137
138#endif // _TDF_HeaderFile