0025367: IGES and BRep persistence - support unicode file names on Windows
[occt.git] / src / IFSelect / IFSelect_SessionDumper.cdl
CommitLineData
b311480e 1-- Created on: 1993-11-04
2-- Created by: Christian CAILLET
3-- Copyright (c) 1993-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 8-- This library is free software; you can redistribute it and/or modify it under
9-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17deferred class SessionDumper from IFSelect inherits TShared
18
19 ---Purpose : A SessionDumper is called by SessionFile. It takes into
20 -- account a set of classes (such as Selections, Dispatches ...).
21 -- SessionFile writes the Type (as defined by cdl) of each Item
22 -- and its general Parameters. It manages the names of the Items.
23 --
24 -- A SessionDumper must be able to Write the Parameters which are
25 -- own of each Item it takes into account, given its Class, then
26 -- to Recognize the Type and Read its Own Parameters to create
27 -- an Item of this Type with these own Parameters.
28 --
29 -- Then, there must be defined one sub-type of SessionDumper per
30 -- consistent set of classes (e.g. a package).
31 --
32 -- By Own Parameters, understand Parameters given at Creation Time
33 -- if there are, or specific of a given class, apart from those
34 -- defined at superclass levels (e.g. Final Selection for a
35 -- Dispatch, Input Selection for a SelectExtract or SelectDeduct,
36 -- Direct Status for a SelectExtract, etc...).
37 --
38 -- The Parameters are those stored in a WorkSession, they can be
39 -- of Types : IntParam, HAsciiString (for TextParam), Selection,
40 -- Dispatch.
41 --
42 -- SessionDumpers are organized in a Library which is used by
43 -- SessionFile. They are put at Creation Time in this Library.
44
45uses Transient, AsciiString from TCollection, SessionFile
46
47is
48
49 Initialize;
50 ---Purpose : The Initialization puts a just created SessionDumper in the
51 -- Library of SessionDumper. Then, it suffices to create once
52 -- a SessionDumper to fill the Library with it
53
54 First (myclass) returns SessionDumper;
55 ---Purpose : Returns the First item of the Library of Dumper. The Next ones
56 -- are then obtained by Next on the returned items
57
58 Next (me) returns SessionDumper;
59 ---Purpose : Returns the Next SesionDumper in the Library. Returns a Null
60 -- Handle at the End.
61
62 WriteOwn (me; file : in out SessionFile; item : Transient)
63 returns Boolean is deferred;
64 ---Purpose : Writes the Own Parameters of a given Item, if it forecast to
65 -- manage its Type.
66 -- Returns True if it has recognized the Type of the Item (in
67 -- this case, it is assumed to have written the Own Parameters if
68 -- there are some), False else : in that case, SessionFile will
69 -- try another SessionDumper in the Library.
70 -- WriteOwn can use these methods from SessionFile : SendVoid,
71 -- SendItem, SendText, and if necessary, WorkSession.
72
73 ReadOwn (me; file : in out SessionFile;
6e33d3ce 74 type : AsciiString from TCollection; item : out Transient)
7fd59977 75 returns Boolean is deferred;
76 ---Purpose : Recognizes a Type (given as <type>) then Creates an Item of
77 -- this Type with the Own Parameter, as required.
78 -- Returns True if it has recognized the Type (in this case, it
79 -- is assumed to have created the Item, returned as <item>),
80 -- False else : in that case, SessionFile will try another
81 -- SessionDumper in the Library.
82 -- ReadOwn can use these methods from SessionFile to access Own
83 -- Parameters : NbOwnParams, IsVoid, IsText, TextValue, ItemValue
84
85fields
86
87 thenext : SessionDumper;
88
89end SessionDumper;