0024927: Getting rid of "Persistent" functionality -- Code
[occt.git] / src / MDF / MDF.cdl
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 --              ---------
17
18 ---Version:     0.0
19 --Version       Date            Purpose
20 --              0.0     Mar 13 1997     Creation
21
22
23 package MDF
24
25         ---Purpose: This package provides classes and methods to
26         --          translate a transient DF into a persistent one and
27         --          vice versa.
28         --          
29         --          Driver
30         --          
31         --          A driver is a tool used to translate a transient
32         --          attribute into a persistent one and vice versa.
33         --          
34         --          Relocation Table
35         --          
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.
40         --          
41         --          Driver Table
42         --          
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
47         --          to be translated.
48
49 uses
50
51     Standard,
52     MMgt,
53     TCollection,
54     TColStd,
55     PColStd,
56     PTColStd,
57     TDF, 
58     CDM,
59     PDF
60
61 is
62
63     ---Category: Classes
64     --           =============================================================
65
66     deferred class ASDriver; -- Attribute Storage Driver.
67
68     deferred class ARDriver; -- Attribute Retrieval Driver.
69
70     generic class RelocationTable; -- Relocation Table.
71
72     generic class DriverTable,
73         DriverList,
74         TypeDriverListMap; -- Driver Table.
75
76     class Tool from MDF;
77
78
79     ---Category: Storage and Retrieval attributes drivers
80     --           ========================================
81         
82     class TagSourceStorageDriver;
83     
84     class TagSourceRetrievalDriver;    
85
86     class ReferenceStorageDriver;
87     
88     class ReferenceRetrievalDriver;
89
90      ---Category: Instantiations
91      --           =============================================================
92
93     class ASDriverSequence instantiates Sequence from TCollection
94         (ASDriver from MDF);
95
96     class ASDriverHSequence instantiates HSequence from TCollection
97         (ASDriver from MDF,
98          ASDriverSequence from MDF);
99
100     class ARDriverSequence instantiates Sequence from TCollection
101         (ARDriver from MDF);
102
103     class ARDriverHSequence instantiates HSequence from TCollection
104         (ARDriver from MDF,
105          ARDriverSequence from MDF);
106
107     -- Storage Relocation Table (Transient->Persistent)
108     class SRelocationTable instantiates RelocationTable from MDF
109         (Attribute  from TDF,
110          Attribute  from PDF,
111          Transient  from Standard,
112          Persistent from Standard,
113          TransientPersistentMap from PTColStd);
114
115     -- Retrieval Relocation Table (Persistent->Transient)
116     class RRelocationTable instantiates RelocationTable from MDF
117         (Attribute  from PDF,
118          Attribute  from TDF,
119          Persistent from Standard,
120          Transient  from Standard,
121          PersistentTransientMap from PTColStd);
122
123     -- Map (Type, ASDriver)
124     class TypeASDriverMap instantiates DataMap from TCollection
125         (Type from Standard,
126          ASDriver from MDF,
127          MapTransientHasher from TColStd);
128
129     -- Map (Type, ARDriver)
130     class TypeARDriverMap instantiates DataMap from TCollection
131         (Type from Standard,
132          ARDriver from MDF,
133          MapTransientHasher from TColStd);
134
135     -- Attribute Storage Driver Table.
136     class ASDriverTable instantiates DriverTable from MDF
137         (ASDriver from MDF,
138          ASDriverHSequence from MDF,
139          TypeASDriverMap from MDF);
140
141     -- Attribute Retrieval Driver Table.
142     class ARDriverTable instantiates DriverTable from MDF
143         (ARDriver from MDF,
144          ARDriverHSequence from MDF,
145          TypeARDriverMap from MDF);
146
147
148
149     -- From Source To Target Object...
150     -- ===============================
151
152
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
159         --          <aTarget>.
160
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
166         --          <aTarget>.
167     
168     AddStorageDrivers(aDriverSeq : ASDriverHSequence from MDF; theMessageDriver : MessageDriver from CDM);
169         ---Purpose: Adds the attribute storage drivers to <aDriverSeq>.
170
171
172     AddRetrievalDrivers(aDriverSeq : ARDriverHSequence from MDF; theMessageDriver : MessageDriver from CDM);
173         ---Purpose: Adds the attribute retrieval drivers to <aDriverSeq>.
174
175
176 end MDF;