42cf5bc1 |
1 | // Created on: 1992-02-11 |
2 | // Created by: Christian CAILLET |
3 | // Copyright (c) 1992-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
8 | // This library is free software; you can redistribute it and/or modify it under |
9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
10 | // by the Free Software Foundation, with special exception defined in the file |
11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | // distribution for complete text of the license and disclaimer of any warranty. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
17 | #ifndef _StepData_HeaderFile |
18 | #define _StepData_HeaderFile |
19 | |
20 | #include <Standard.hxx> |
21 | #include <Standard_DefineAlloc.hxx> |
22 | #include <Standard_Handle.hxx> |
23 | |
24 | class StepData_Protocol; |
25 | class StepData_StepModel; |
26 | class StepData_UndefinedEntity; |
27 | class StepData_SelectType; |
28 | class StepData_Field; |
29 | class StepData_SelectMember; |
30 | class StepData_SelectInt; |
31 | class StepData_SelectReal; |
32 | class StepData_SelectNamed; |
33 | class StepData_SelectArrReal; |
34 | class StepData_PDescr; |
35 | class StepData_FieldList; |
36 | class StepData_FieldList1; |
37 | class StepData_FieldListN; |
38 | class StepData_FieldListD; |
39 | class StepData_EDescr; |
40 | class StepData_ESDescr; |
41 | class StepData_ECDescr; |
42 | class StepData_Described; |
43 | class StepData_Simple; |
44 | class StepData_Plex; |
45 | class StepData_FreeFormEntity; |
46 | class StepData_Protocol; |
47 | class StepData_GeneralModule; |
48 | class StepData_FileRecognizer; |
49 | class StepData_FileProtocol; |
50 | class StepData_HeaderTool; |
51 | class StepData_EnumTool; |
52 | class StepData_DescrProtocol; |
53 | class StepData_DescrGeneral; |
54 | class StepData_DescrReadWrite; |
55 | class StepData_StepReaderData; |
56 | class StepData_StepReaderTool; |
57 | class StepData_ReadWriteModule; |
58 | class StepData_StepWriter; |
59 | class StepData_StepDumper; |
60 | class StepData_WriterLib; |
61 | class StepData_DefaultGeneral; |
62 | class StepData_GlobalNodeOfWriterLib; |
63 | class StepData_NodeOfWriterLib; |
64 | |
65 | |
66 | //! Gives basic data definition for Step Interface. |
67 | //! Any class of a data model described in EXPRESS Language |
68 | //! is candidate to be managed by a Step Interface |
69 | class StepData |
70 | { |
71 | public: |
72 | |
73 | DEFINE_STANDARD_ALLOC |
74 | |
75 | |
76 | //! Returns the recorded HeaderProtocol, which can be : |
77 | //! - a Null Handle if no Header Protocol was yet defined |
78 | //! - a simple Protocol if only one was defined |
79 | //! - a FileProtocol if more than one Protocol was yet defined |
80 | Standard_EXPORT static Handle(StepData_Protocol) HeaderProtocol(); |
81 | |
82 | //! Adds a new Header Protocol to the Header Definition |
83 | Standard_EXPORT static void AddHeaderProtocol (const Handle(StepData_Protocol)& headerproto); |
84 | |
85 | //! Prepares General Data required to work with this package, |
86 | //! which are the Protocol and Modules to be loaded into Libraries |
87 | Standard_EXPORT static void Init(); |
88 | |
89 | //! Returns a Protocol from StepData (avoids to create it) |
90 | Standard_EXPORT static Handle(StepData_Protocol) Protocol(); |
91 | |
92 | |
93 | |
94 | |
95 | protected: |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | private: |
102 | |
103 | |
104 | |
105 | |
106 | friend class StepData_StepModel; |
107 | friend class StepData_UndefinedEntity; |
108 | friend class StepData_SelectType; |
109 | friend class StepData_Field; |
110 | friend class StepData_SelectMember; |
111 | friend class StepData_SelectInt; |
112 | friend class StepData_SelectReal; |
113 | friend class StepData_SelectNamed; |
114 | friend class StepData_SelectArrReal; |
115 | friend class StepData_PDescr; |
116 | friend class StepData_FieldList; |
117 | friend class StepData_FieldList1; |
118 | friend class StepData_FieldListN; |
119 | friend class StepData_FieldListD; |
120 | friend class StepData_EDescr; |
121 | friend class StepData_ESDescr; |
122 | friend class StepData_ECDescr; |
123 | friend class StepData_Described; |
124 | friend class StepData_Simple; |
125 | friend class StepData_Plex; |
126 | friend class StepData_FreeFormEntity; |
127 | friend class StepData_Protocol; |
128 | friend class StepData_GeneralModule; |
129 | friend class StepData_FileRecognizer; |
130 | friend class StepData_FileProtocol; |
131 | friend class StepData_HeaderTool; |
132 | friend class StepData_EnumTool; |
133 | friend class StepData_DescrProtocol; |
134 | friend class StepData_DescrGeneral; |
135 | friend class StepData_DescrReadWrite; |
136 | friend class StepData_StepReaderData; |
137 | friend class StepData_StepReaderTool; |
138 | friend class StepData_ReadWriteModule; |
139 | friend class StepData_StepWriter; |
140 | friend class StepData_StepDumper; |
141 | friend class StepData_WriterLib; |
142 | friend class StepData_DefaultGeneral; |
143 | friend class StepData_GlobalNodeOfWriterLib; |
144 | friend class StepData_NodeOfWriterLib; |
145 | |
146 | }; |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | #endif // _StepData_HeaderFile |