1 // Created by: DAUTRY Philippe
2 // Copyright (c) 1997-1999 Matra Datavision
3 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
17 // modified Sergey Zaritchny
20 //Version Date Purpose
21 // 0.0 Aug 4 1997 Creation
25 #include <MDataStd.ixx>
26 #include <MDF_ASDriverTable.hxx>
27 #include <MDF_ARDriverTable.hxx>
28 #include <CDM_MessageDriver.hxx>
30 #include <MDataStd_DirectoryStorageDriver.hxx>
31 #include <MDataStd_UAttributeStorageDriver.hxx>
32 #include <MDataStd_IntegerArrayStorageDriver.hxx>
33 #include <MDataStd_RealArrayStorageDriver.hxx>
34 #include <MDataStd_ExtStringArrayStorageDriver.hxx>
35 #include <MDataStd_NameStorageDriver.hxx>
36 #include <MDataStd_CommentStorageDriver.hxx>
37 #include <MDataStd_IntegerStorageDriver.hxx>
38 #include <MDataStd_RealStorageDriver.hxx>
39 #include <MDataStd_VariableStorageDriver.hxx>
40 #include <MDataStd_ExpressionStorageDriver.hxx>
41 #include <MDataStd_RelationStorageDriver.hxx>
42 #include <MDataStd_NoteBookStorageDriver.hxx>
43 #include <MDataStd_TreeNodeStorageDriver.hxx>
45 #include <MDataStd_TickStorageDriver.hxx>
46 #include <MDataStd_IntegerListStorageDriver.hxx>
47 #include <MDataStd_RealListStorageDriver.hxx>
48 #include <MDataStd_ExtStringListStorageDriver.hxx>
49 #include <MDataStd_BooleanListStorageDriver.hxx>
50 #include <MDataStd_ReferenceListStorageDriver.hxx>
51 #include <MDataStd_BooleanArrayStorageDriver.hxx>
52 #include <MDataStd_ReferenceArrayStorageDriver.hxx>
53 #include <MDataStd_ByteArrayStorageDriver.hxx>
54 #include <MDataStd_NamedDataStorageDriver.hxx>
55 #include <MDataStd_AsciiStringStorageDriver.hxx>
56 #include <MDataStd_IntPackedMapStorageDriver.hxx>
58 #include <MDataStd_DirectoryRetrievalDriver.hxx>
59 #include <MDataStd_RealArrayRetrievalDriver.hxx>
60 #include <MDataStd_ExtStringArrayRetrievalDriver.hxx>
61 #include <MDataStd_UAttributeRetrievalDriver.hxx>
62 #include <MDataStd_IntegerArrayRetrievalDriver.hxx>
63 #include <MDataStd_NameRetrievalDriver.hxx>
64 #include <MDataStd_CommentRetrievalDriver.hxx>
65 #include <MDataStd_IntegerRetrievalDriver.hxx>
66 #include <MDataStd_RealRetrievalDriver.hxx>
67 #include <MDataStd_VariableRetrievalDriver.hxx>
68 #include <MDataStd_ExpressionRetrievalDriver.hxx>
69 #include <MDataStd_RelationRetrievalDriver.hxx>
70 #include <MDataStd_NoteBookRetrievalDriver.hxx>
71 #include <MDataStd_TreeNodeRetrievalDriver.hxx>
73 #include <MDataStd_TickRetrievalDriver.hxx>
74 #include <MDataStd_IntegerListRetrievalDriver.hxx>
75 #include <MDataStd_RealListRetrievalDriver.hxx>
76 #include <MDataStd_ExtStringListRetrievalDriver.hxx>
77 #include <MDataStd_BooleanListRetrievalDriver.hxx>
78 #include <MDataStd_ReferenceListRetrievalDriver.hxx>
79 #include <MDataStd_BooleanArrayRetrievalDriver.hxx>
80 #include <MDataStd_ReferenceArrayRetrievalDriver.hxx>
81 #include <MDataStd_ByteArrayRetrievalDriver.hxx>
82 #include <MDataStd_NamedDataRetrievalDriver.hxx>
83 #include <MDataStd_AsciiStringRetrievalDriver.hxx>
84 #include <MDataStd_IntPackedMapRetrievalDriver.hxx>
85 #include <MDataStd_ByteArrayRetrievalDriver_1.hxx>
86 #include <MDataStd_IntegerArrayRetrievalDriver_1.hxx>
87 #include <MDataStd_RealArrayRetrievalDriver_1.hxx>
88 #include <MDataStd_ExtStringArrayRetrievalDriver_1.hxx>
89 #include <MDataStd_IntPackedMapRetrievalDriver_1.hxx>
92 #include <TDataStd_RealEnum.hxx>
93 #include <Standard_DomainError.hxx>
95 //=======================================================================
96 //function : AddStorageDriver
98 //=======================================================================
100 void MDataStd::AddStorageDrivers
101 (const Handle(MDF_ASDriverHSequence)& aDriverSeq, const Handle(CDM_MessageDriver)& theMsgDriver)
103 aDriverSeq->Append(new MDataStd_DirectoryStorageDriver(theMsgDriver));
104 aDriverSeq->Append(new MDataStd_IntegerArrayStorageDriver(theMsgDriver));
105 aDriverSeq->Append(new MDataStd_RealArrayStorageDriver(theMsgDriver));
106 aDriverSeq->Append(new MDataStd_UAttributeStorageDriver(theMsgDriver));
107 aDriverSeq->Append(new MDataStd_NameStorageDriver(theMsgDriver));
108 aDriverSeq->Append(new MDataStd_CommentStorageDriver(theMsgDriver));
109 aDriverSeq->Append(new MDataStd_IntegerStorageDriver(theMsgDriver));
110 aDriverSeq->Append(new MDataStd_RealStorageDriver(theMsgDriver));
112 aDriverSeq->Append(new MDataStd_VariableStorageDriver(theMsgDriver));
113 aDriverSeq->Append(new MDataStd_ExpressionStorageDriver(theMsgDriver));
114 aDriverSeq->Append(new MDataStd_RelationStorageDriver(theMsgDriver));
115 aDriverSeq->Append(new MDataStd_NoteBookStorageDriver(theMsgDriver));
116 aDriverSeq->Append(new MDataStd_TreeNodeStorageDriver(theMsgDriver));
117 aDriverSeq->Append(new MDataStd_ExtStringArrayStorageDriver(theMsgDriver));
119 aDriverSeq->Append(new MDataStd_TickStorageDriver(theMsgDriver));
120 aDriverSeq->Append(new MDataStd_IntegerListStorageDriver(theMsgDriver));
121 aDriverSeq->Append(new MDataStd_RealListStorageDriver(theMsgDriver));
122 aDriverSeq->Append(new MDataStd_ExtStringListStorageDriver(theMsgDriver));
123 aDriverSeq->Append(new MDataStd_BooleanListStorageDriver(theMsgDriver));
124 aDriverSeq->Append(new MDataStd_ReferenceListStorageDriver(theMsgDriver));
125 aDriverSeq->Append(new MDataStd_BooleanArrayStorageDriver(theMsgDriver));
126 aDriverSeq->Append(new MDataStd_ReferenceArrayStorageDriver(theMsgDriver));
127 aDriverSeq->Append(new MDataStd_ByteArrayStorageDriver(theMsgDriver));
128 aDriverSeq->Append(new MDataStd_NamedDataStorageDriver(theMsgDriver));
129 aDriverSeq->Append(new MDataStd_AsciiStringStorageDriver(theMsgDriver));
130 aDriverSeq->Append(new MDataStd_IntPackedMapStorageDriver(theMsgDriver));
134 //=======================================================================
135 //function : AddRetrievalDriver
137 //=======================================================================
139 void MDataStd::AddRetrievalDrivers
140 (const Handle(MDF_ARDriverHSequence)& aDriverSeq,const Handle(CDM_MessageDriver)& theMsgDriver)
142 aDriverSeq->Append(new MDataStd_DirectoryRetrievalDriver(theMsgDriver));
143 aDriverSeq->Append(new MDataStd_IntegerArrayRetrievalDriver(theMsgDriver));
144 aDriverSeq->Append(new MDataStd_RealArrayRetrievalDriver(theMsgDriver));
145 aDriverSeq->Append(new MDataStd_UAttributeRetrievalDriver(theMsgDriver));
146 aDriverSeq->Append(new MDataStd_NameRetrievalDriver(theMsgDriver));
147 aDriverSeq->Append(new MDataStd_CommentRetrievalDriver(theMsgDriver));
148 aDriverSeq->Append(new MDataStd_IntegerRetrievalDriver(theMsgDriver));
149 aDriverSeq->Append(new MDataStd_RealRetrievalDriver(theMsgDriver));
151 aDriverSeq->Append(new MDataStd_VariableRetrievalDriver(theMsgDriver));
152 aDriverSeq->Append(new MDataStd_ExpressionRetrievalDriver(theMsgDriver));
153 aDriverSeq->Append(new MDataStd_RelationRetrievalDriver(theMsgDriver));
154 aDriverSeq->Append(new MDataStd_NoteBookRetrievalDriver(theMsgDriver));
155 aDriverSeq->Append(new MDataStd_TreeNodeRetrievalDriver(theMsgDriver));
156 aDriverSeq->Append(new MDataStd_ExtStringArrayRetrievalDriver(theMsgDriver));
158 aDriverSeq->Append(new MDataStd_TickRetrievalDriver(theMsgDriver));
159 aDriverSeq->Append(new MDataStd_IntegerListRetrievalDriver(theMsgDriver));
160 aDriverSeq->Append(new MDataStd_RealListRetrievalDriver(theMsgDriver));
161 aDriverSeq->Append(new MDataStd_ExtStringListRetrievalDriver(theMsgDriver));
162 aDriverSeq->Append(new MDataStd_BooleanListRetrievalDriver(theMsgDriver));
163 aDriverSeq->Append(new MDataStd_ReferenceListRetrievalDriver(theMsgDriver));
164 aDriverSeq->Append(new MDataStd_BooleanArrayRetrievalDriver(theMsgDriver));
165 aDriverSeq->Append(new MDataStd_ReferenceArrayRetrievalDriver(theMsgDriver));
166 aDriverSeq->Append(new MDataStd_ByteArrayRetrievalDriver(theMsgDriver));
167 aDriverSeq->Append(new MDataStd_NamedDataRetrievalDriver(theMsgDriver));
168 aDriverSeq->Append(new MDataStd_AsciiStringRetrievalDriver(theMsgDriver));
169 aDriverSeq->Append(new MDataStd_IntPackedMapRetrievalDriver(theMsgDriver));
170 aDriverSeq->Append(new MDataStd_ByteArrayRetrievalDriver_1(theMsgDriver));
171 aDriverSeq->Append(new MDataStd_IntegerArrayRetrievalDriver_1(theMsgDriver));
172 aDriverSeq->Append(new MDataStd_RealArrayRetrievalDriver_1(theMsgDriver));
173 aDriverSeq->Append(new MDataStd_ExtStringArrayRetrievalDriver_1(theMsgDriver));
174 aDriverSeq->Append(new MDataStd_IntPackedMapRetrievalDriver_1(theMsgDriver));
178 //=======================================================================
179 //function : RealDimensionToInteger
181 //=======================================================================
183 Standard_Integer MDataStd::RealDimensionToInteger(const TDataStd_RealEnum e)
186 case TDataStd_SCALAR : return 0;
187 case TDataStd_LENGTH : return 1;
188 case TDataStd_ANGULAR : return 2;
191 Standard_DomainError::Raise("TDataStd_RealEnum; enum term unknown");
196 //=======================================================================
197 //function : IntegerToRealDimension
199 //=======================================================================
201 TDataStd_RealEnum MDataStd::IntegerToRealDimension(const Standard_Integer i)
205 // planar constraints
206 case 0 : return TDataStd_SCALAR;
207 case 1 : return TDataStd_LENGTH;
208 case 2 : return TDataStd_ANGULAR;
210 Standard_DomainError::Raise("TDataStd_RealEnum; enum term unknown ");
212 return TDataStd_SCALAR;