0024057: Eliminate compiler warning C4100 in MSVC++ with warning level 4
[occt.git] / src / IFSelect / IFSelect_SessionDumper.cdl
1 -- Created on: 1993-11-04
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 deferred class SessionDumper  from IFSelect  inherits TShared
24
25     ---Purpose : A SessionDumper is called by SessionFile. It takes into
26     --           account a set of classes (such as Selections, Dispatches ...).
27     --           SessionFile writes the Type (as defined by cdl) of each Item
28     --           and its general Parameters. It manages the names of the Items.
29     --           
30     --           A SessionDumper must be able to Write the Parameters which are
31     --           own of each Item it takes into account, given its Class, then
32     --           to Recognize the Type and Read its Own Parameters to create
33     --           an Item of this Type with these own Parameters.
34     --           
35     --           Then, there must be defined one sub-type of SessionDumper per
36     --           consistent set of classes (e.g. a package).
37     --           
38     --           By Own Parameters, understand Parameters given at Creation Time
39     --           if there are, or specific of a given class, apart from those
40     --           defined at superclass levels (e.g. Final Selection for a
41     --           Dispatch, Input Selection for a SelectExtract or SelectDeduct,
42     --           Direct Status for a SelectExtract, etc...).
43     --           
44     --           The Parameters are those stored in a WorkSession, they can be
45     --           of Types : IntParam, HAsciiString (for TextParam), Selection,
46     --           Dispatch.
47     --           
48     --           SessionDumpers are organized in a Library which is used by
49     --           SessionFile. They are put at Creation Time in this Library.
50
51 uses Transient, AsciiString from TCollection, SessionFile
52
53 is
54
55     Initialize;
56     ---Purpose : The Initialization puts a just created SessionDumper in the
57     --           Library of SessionDumper. Then, it suffices to create once
58     --           a SessionDumper to fill the Library with it
59
60     First (myclass) returns SessionDumper;
61     ---Purpose : Returns the First item of the Library of Dumper. The Next ones
62     --           are then obtained by Next on the returned items
63
64     Next (me) returns SessionDumper;
65     ---Purpose : Returns the Next SesionDumper in the Library. Returns a Null
66     --           Handle at the End.
67
68     WriteOwn (me; file : in out SessionFile; item : Transient)
69         returns Boolean  is deferred;
70     ---Purpose : Writes the Own Parameters of a given Item, if it forecast to
71     --           manage its Type.
72     --           Returns True if it has recognized the Type of the Item (in
73     --           this case, it is assumed to have written the Own Parameters if
74     --           there are some), False else : in that case, SessionFile will
75     --           try another SessionDumper in the Library.
76     --           WriteOwn can use these methods from SessionFile : SendVoid,
77     --           SendItem, SendText, and if necessary, WorkSession.
78
79     ReadOwn  (me; file : in out SessionFile;
80             type : AsciiString from TCollection; item : out mutable Transient)
81         returns Boolean  is deferred;
82     ---Purpose : Recognizes a Type (given as <type>) then Creates an Item of
83     --           this Type with the Own Parameter, as required.
84     --           Returns True if it has recognized the Type (in this case, it
85     --           is assumed to have created the Item, returned as <item>),
86     --           False else : in that case, SessionFile will try another
87     --           SessionDumper in the Library.
88     --           ReadOwn can use these methods from SessionFile to access Own
89     --           Parameters : NbOwnParams, IsVoid, IsText, TextValue, ItemValue
90
91 fields
92
93     thenext : SessionDumper;
94
95 end SessionDumper;