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.
19 --Version Date Purpose
20 -- 0.0 Mar 13 1997 Creation
25 ---Purpose: This package provides classes and methods to
26 -- translate a transient DF into a persistent one and
31 -- A driver is a tool used to translate a transient
32 -- attribute into a persistent one and vice versa.
36 -- A relocation table is a tool who provides services
37 -- to relocate transient objects into persistent ones
38 -- (or vice versa). It uses a map system to keep the
39 -- sharing. This service is used by the drivers.
43 -- A driver table is an object building links between
44 -- object types and object drivers. In the
45 -- translation process, a driver table is asked to
46 -- give a translation driver for each current object
64 -- =============================================================
66 deferred class ASDriver; -- Attribute Storage Driver.
68 deferred class ARDriver; -- Attribute Retrieval Driver.
70 generic class RelocationTable; -- Relocation Table.
72 generic class DriverTable,
74 TypeDriverListMap; -- Driver Table.
79 ---Category: Storage and Retrieval attributes drivers
80 -- ========================================
82 class TagSourceStorageDriver;
84 class TagSourceRetrievalDriver;
86 class ReferenceStorageDriver;
88 class ReferenceRetrievalDriver;
90 ---Category: Instantiations
91 -- =============================================================
93 class ASDriverSequence instantiates Sequence from TCollection
96 class ASDriverHSequence instantiates HSequence from TCollection
98 ASDriverSequence from MDF);
100 class ARDriverSequence instantiates Sequence from TCollection
103 class ARDriverHSequence instantiates HSequence from TCollection
105 ARDriverSequence from MDF);
107 -- Storage Relocation Table (Transient->Persistent)
108 class SRelocationTable instantiates RelocationTable from MDF
111 Transient from Standard,
112 Persistent from Standard,
113 TransientPersistentMap from PTColStd);
115 -- Retrieval Relocation Table (Persistent->Transient)
116 class RRelocationTable instantiates RelocationTable from MDF
119 Persistent from Standard,
120 Transient from Standard,
121 PersistentTransientMap from PTColStd);
123 -- Map (Type, ASDriver)
124 class TypeASDriverMap instantiates DataMap from TCollection
127 MapTransientHasher from TColStd);
129 -- Map (Type, ARDriver)
130 class TypeARDriverMap instantiates DataMap from TCollection
133 MapTransientHasher from TColStd);
135 -- Attribute Storage Driver Table.
136 class ASDriverTable instantiates DriverTable from MDF
138 ASDriverHSequence from MDF,
139 TypeASDriverMap from MDF);
141 -- Attribute Retrieval Driver Table.
142 class ARDriverTable instantiates DriverTable from MDF
144 ARDriverHSequence from MDF,
145 TypeARDriverMap from MDF);
149 -- From Source To Target Object...
150 -- ===============================
153 FromTo(aSource : Data from TDF;
154 aTarget : in out Data from PDF;
155 aDriverTable : ASDriverTable from MDF;
156 aReloc : SRelocationTable from MDF;
157 aVersion : Integer from Standard = 0);
158 ---Purpose: Translates a transient <aSource> into a persistent
161 FromTo(aSource : Data from PDF;
162 aTarget : in out Data from TDF;
163 aDriverTable : ARDriverTable from MDF;
164 aReloc : RRelocationTable from MDF);
165 ---Purpose: Translates a persistent <aSource> into a transient
168 AddStorageDrivers(aDriverSeq : ASDriverHSequence from MDF; theMessageDriver : MessageDriver from CDM);
169 ---Purpose: Adds the attribute storage drivers to <aDriverSeq>.
172 AddRetrievalDrivers(aDriverSeq : ARDriverHSequence from MDF; theMessageDriver : MessageDriver from CDM);
173 ---Purpose: Adds the attribute retrieval drivers to <aDriverSeq>.