Test for 0022778: Bug in BRepMesh
[occt.git] / src / TFunction / TFunction_Driver.cdl
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
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 Driver from TFunction inherits TShared from MMgt 
24
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.
36 uses 
37   
38      Logbook   from TFunction,  
39      Label     from TDF,
40      LabelList from TDF
41       
42 is 
43  
44     Initialize returns mutable Driver from TFunction; 
45
46
47     ---Purpose: initialisation of the driver
48     --          ============================
49
50     Init(me : mutable; L : Label from TDF);
51         ---Purpose: Initializes the label L for this function prior to its  execution.
52      
53     Label(me) returns Label from TDF;  
54         ---C++: inline
55         ---Purpose: Returns the label of the driver for this function.
56
57     Validate(me; log : in out Logbook from TFunction)
58     is virtual;
59         ---Purpose: Validates labels of a function  in <log>. 
60         -- This function is the one initialized in this function driver.
61         -- Warning
62         -- In regeneration mode, the solver must call this
63         -- method even if the function is not executed. 
64      
65      
66     ---Purpose: execution of function
67     --          =====================
68
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
74     is virtual;
75
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
80     is deferred;
81  
82  
83     ---Purpose: arguments & results of functions
84     --          ================================
85  
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.
89     is virtual;
90  
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.
94     is virtual;
95  
96 fields 
97  
98     myLabel : Label from TDF;
99
100 end Driver;