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>
24 class Standard_GUID;
25 class TCollection_ExtendedString;
26 class TDF_Data;
27 class TDF_Label;
28 class TDF_Attribute;
29 class TDF_TagSource;
30 class TDF_Reference;
31 class TDF_ClosureMode;
32 class TDF_ClosureTool;
33 class TDF_CopyTool;
34 class TDF_CopyLabel;
35 class TDF_ComparisonTool;
36 class TDF_Transaction;
37 class TDF_Delta;
38 class TDF_AttributeDelta;
39 class TDF_DeltaOnAddition;
40 class TDF_DeltaOnForget;
41 class TDF_DeltaOnResume;
42 class TDF_DeltaOnRemoval;
43 class TDF_DeltaOnModification;
44 class TDF_DefaultDeltaOnRemoval;
45 class TDF_DefaultDeltaOnModification;
46 class TDF_ChildIterator;
47 class TDF_ChildIDIterator;
48 class TDF_DataSet;
49 class TDF_RelocationTable;
50 class TDF_Tool;
51 class TDF_LabelMapHasher;
52 class 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 information 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.
65 class TDF
66 {
67 public:
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 
91 protected:
92 
93 
94 
95 
96 
97 private:
98 
99 
100 
101 
102 friend class TDF_Data;
103 friend class TDF_Label;
104 friend class TDF_Attribute;
105 friend class TDF_TagSource;
106 friend class TDF_Reference;
107 friend class TDF_ClosureMode;
108 friend class TDF_ClosureTool;
109 friend class TDF_CopyTool;
110 friend class TDF_CopyLabel;
111 friend class TDF_ComparisonTool;
112 friend class TDF_Transaction;
113 friend class TDF_Delta;
114 friend class TDF_AttributeDelta;
115 friend class TDF_DeltaOnAddition;
116 friend class TDF_DeltaOnForget;
117 friend class TDF_DeltaOnResume;
118 friend class TDF_DeltaOnRemoval;
119 friend class TDF_DeltaOnModification;
120 friend class TDF_DefaultDeltaOnRemoval;
121 friend class TDF_DefaultDeltaOnModification;
122 friend class TDF_ChildIterator;
123 friend class TDF_ChildIDIterator;
124 friend class TDF_DataSet;
125 friend class TDF_RelocationTable;
126 friend class TDF_Tool;
127 friend class TDF_LabelMapHasher;
128 friend class TDF_IDFilter;
129 
130 };
131 
132 
133 
134 
135 
136 
137 
138 #endif // _TDF_HeaderFile
139