0024157: Parallelization of assembly part of BO
[occt.git] / src / IFSelect / IFSelect_Activator.cdl
1 -- Created on: 1993-07-27
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 Activator  from IFSelect  inherits TShared
24
25     ---Purpose : Defines the general frame for working with a SessionPilot.
26     --           Each Activator treats a set of Commands. Commands are given as
27     --           alphanumeric strings. They can be of two main forms :
28     --           - classic, to list, evaluate, enrich the session (by itself) :
29     --             no specific remark, its complete execution must be described
30     --           - creation of a new item : instead of creatinf it plus adding
31     --             it to the session (which is a classic way), it is possible
32     --             to create it and make it recorded by the SessionPilot :
33     --             then, the Pilot will add it to the session; this way allows
34     --             the Pilot to manage itself named items
35     --           
36     --           In order to make easier the use of Activator, this class
37     --           provides a simple way to Select an Actor for a Command :
38     --           each sub-class of SectionActor defines the command titles it
39     --           recognizes, plus attaches a Number, unique for this sub-class,
40     --           to each distinct command title.
41     --           
42     --           Each time an action is required, the corresponding Number
43     --           can then be given to help the selection of the action to do.
44     --           
45     --           The result of an Execution must indicate if it is worth to be
46     --           recorded or not : see method Do
47
48 uses CString, OStream,
49      AsciiString from TCollection,
50      HSequenceOfAsciiString from TColStd,
51      SessionPilot, ReturnStatus
52
53 raises DomainError
54
55 is
56
57     Adding (myclass;
58             actor   : Activator;
59             number  : Integer;
60             command : CString;
61             mode    : Integer)
62     ---Purpose : Records, in a Dictionary available for all the Activators,
63     --           the command title an Activator can process, attached with
64     --           its number, proper for this Activator
65     --           <mode> allows to distinguish various execution modes
66     --             0: default mode; 1 : for xset
67          raises DomainError;
68     --           Error if a command title (exactly the same) is recorded more
69     --           than once
70
71     Add (me; number : Integer; command : CString)
72     ---Purpose : Allows a self-definition by an Activator of the Commands it
73     --           processes, call the class method Adding (mode 0)
74          raises DomainError;
75     --           Error if a command title (exactly the same) is recorded more
76     --           than once
77
78     AddSet (me; number : Integer; command : CString)
79     ---Purpose : Same as Add but specifies that this command is candidate for
80     --           xset (creation of items, xset : named items; mode 1)
81          raises DomainError;
82
83     Remove (myclass; command : CString);
84     ---Purpose : Removes a Command, if it is recorded (else, does nothing)
85
86
87     SetAlias (myclass; conf, command, aliasname : CString);
88     ---Purpose : Records, for a configuration named <conf>, that the command
89     --           <command> may be aliased by another command <alias>
90     --           
91     --           To be used by call to Alias (no automatic redirection)
92     --           The configuration typically refers to a norm
93
94     SetCurrentAlias (myclass; conf : CString);
95     ---Purpose : Sets <conf> as current configuration for aliases
96
97     Alias (myclass; command : CString) returns AsciiString;
98     ---Purpose : Returns, in the current configuration, what alias has been
99     --           recorded for <command>
100     --           The returned string is empty if no alias is recorded
101
102
103     Select (myclass; command : CString;
104         number : out Integer; actor : out mutable Activator)
105             returns Boolean;
106     ---Purpose : Selects, for a Command given by its title, an actor with its
107     --           command number. Returns True if found, False else
108
109     Mode (myclass; command : CString) returns Integer;
110     ---Purpose : Returns mode recorded for a command. -1 if not found
111
112     Commands (myclass; mode : Integer = -1; command : CString = "")
113         returns HSequenceOfAsciiString from TColStd;
114     ---Purpose : Returns, for a root of command title, the list of possible
115     --           commands.
116     --           <mode> : -1 (D) for all commands if <commands> is empty
117     --           -1 + command : about a Group , >= 0 see Adding
118     --           By default, it returns the whole list of known commands.
119
120
121     Initialize;
122     ---Purpose : Sets the default values
123
124     Do   (me : mutable; number : Integer; pilot : mutable SessionPilot)
125         returns ReturnStatus  is deferred;
126     ---Purpose : Tries to execute a Command Line. <number> is the number of the
127     --           command for this Activator. It Must forecast to record the
128     --           result of the execution, for need of Undo-Redo
129     --           Must Returns : 0 for a void command (not to be recorded),
130     --           1 if execution OK, -1 if command incorrect, -2 if error
131     --           on execution
132
133     Help (me; number : Integer) returns CString  is deferred;
134     ---Purpose : Sends a short help message for a given command identified by
135     --           it number for this Activator (must take one line max)
136
137     Group (me) returns CString;
138     File  (me) returns CString;
139     SetForGroup (me : mutable; group : CString; file : CString = "");
140     ---Purpose : Group and SetGroup define a "Group of commands" which
141     --           correspond to an Activator. Default is "XSTEP"
142     --           Also a file may be attached
143
144 fields
145
146     thegroup : AsciiString;
147     thefile  : AsciiString;
148
149 end Activator;