1 -- Created on: 1999-07-19
2 -- Created by: Denis PASCAL
3 -- Copyright (c) 1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
23 deferred class Driver from TFunction inherits TShared from MMgt
25 ---Purpose: This driver class provide services around function
26 -- execution. One instance of this class is built for
27 -- the whole session. The driver is bound to the
28 -- DriverGUID in the DriverTable class.
29 -- It allows you to create classes which inherit from
30 -- this abstract class.
31 -- These subclasses identify the various algorithms
32 -- which can be applied to the data contained in the
33 -- attributes of sub-labels of a model.
34 -- A single instance of this class and each of its
35 -- subclasses is built for the whole session.
38 Logbook from TFunction,
44 Initialize returns mutable Driver from TFunction;
47 ---Purpose: initialisation of the driver
48 -- ============================
50 Init(me : mutable; L : Label from TDF);
51 ---Purpose: Initializes the label L for this function prior to its execution.
53 Label(me) returns Label from TDF;
55 ---Purpose: Returns the label of the driver for this function.
57 Validate(me; log : in out Logbook from TFunction)
59 ---Purpose: Validates labels of a function in <log>.
60 -- This function is the one initialized in this function driver.
62 -- In regeneration mode, the solver must call this
63 -- method even if the function is not executed.
66 ---Purpose: execution of function
67 -- =====================
69 MustExecute (me; log : Logbook from TFunction)
70 ---Purpose: Analyzes the labels in the logbook log.
71 -- Returns true if attributes have been modified.
72 -- If the function label itself has been modified, the function must be executed.
73 returns Boolean from Standard
76 Execute (me; log : in out Logbook from TFunction)
77 ---Purpose: Executes the function in this function driver and
78 -- puts the impacted labels in the logbook log.
79 returns Integer from Standard
83 ---Purpose: arguments & results of functions
84 -- ================================
86 Arguments (me; args : out LabelList from TDF)
87 ---Purpose: The method fills-in the list by labels,
88 -- where the arguments of the function are located.
91 Results (me; res : out LabelList from TDF)
92 ---Purpose: The method fills-in the list by labels,
93 -- where the results of the function are located.
98 myLabel : Label from TDF;