0024927: Getting rid of "Persistent" functionality -- Code
[occt.git] / src / MDF / MDF_DriverTable.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     May  6 1997     Creation
21
22
23 generic class DriverTable from MDF
24     (TheHDriver as Transient from Standard;
25      TheDriverHSeq as Transient from Standard;
26      TheTypeDriverMap as any)
27     inherits TShared from MMgt
28
29         ---Purpose: A driver table is an object building links between
30         --          object types and object drivers. In the
31         --          translation process, a driver table is asked to
32         --          give a translation driver for each current object
33         --          to be translated.
34         --          
35         --          Validity range of a driver: a driver is available
36         --          from its version number till the next upper
37         --          version number.
38
39 uses
40
41     Type                     from Standard,
42     MapTransientHasher       from TColStd
43     
44
45 -- raises
46
47     class DriverList instantiates List from TCollection
48         (TheHDriver);
49     
50     class TypeDriverListMap instantiates DataMap from TCollection
51         (Type from Standard,
52          DriverList,
53          MapTransientHasher from TColStd);
54
55 is
56
57     Create returns DriverTable from MDF;
58         ---Purpose: Creates a mutable DriverTable from MDF.
59
60     SetDriver(me : mutable;
61               anHDriver       : TheHDriver);
62         ---Purpose: Sets a translation driver: <aDriver>.
63
64     SetDrivers(me : mutable;
65                aDriverHSeq       : TheDriverHSeq);
66         ---Purpose: Sets translation drivers.
67
68     GetDrivers(me : mutable;
69                aVersion   : Integer from Standard = 0)
70         returns TheTypeDriverMap;
71         ---Purpose: Gets a map of drivers available for <aVersion>. 
72         --          
73         --          If <aVersion> is not given or is null, the highest
74         --          version number driver is returned.
75         --          
76         ---C++: return const &
77
78     GetDriver(me;
79               aType           : Type from Standard;
80               anHDriver       : in out TheHDriver;
81               aVersion        : Integer from Standard = 0)
82         returns Boolean from Standard;
83         ---Purpose: Gets a driver <aDriver> according to <aType> and
84         --          <aVersion>.
85         --          
86         --          If <aVersion> is not given or is null, the highest
87         --          version number driver is returned.
88         --          
89         --          Returns True if a driver is found; false otherwise.
90
91
92 fields
93
94     myVersion  : Integer from Standard;
95     myMap      : TheTypeDriverMap; -- available for myVersion.
96     myMapOfLst : TypeDriverListMap;
97
98 end DriverTable;