summaryrefslogtreecommitdiff
path: root/inc/TFunction_IFunction.hxx
blob: 37107920bbaf9884286132362323f35105f2ee5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _TFunction_IFunction_HeaderFile
#define _TFunction_IFunction_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _TDF_Label_HeaderFile
#include <TDF_Label.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TFunction_ExecutionStatus_HeaderFile
#include <TFunction_ExecutionStatus.hxx>
#endif
#ifndef _Handle_TFunction_Driver_HeaderFile
#include <Handle_TFunction_Driver.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_TFunction_GraphNode_HeaderFile
#include <Handle_TFunction_GraphNode.hxx>
#endif
class TDF_Label;
class Standard_GUID;
class TDF_LabelList;
class TFunction_DoubleMapOfIntegerLabel;
class TFunction_Logbook;
class TFunction_Driver;
class TFunction_GraphNode;


//! Interface class for usage of Function Mechanism <br>
class TFunction_IFunction  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Sets a new function attached to a label <L> with <ID>. <br>
//!          It creates a new TFunction_Function attribute initialized by the <ID>, <br>
//!          a new TFunction_GraphNode with an empty list of dependencies and <br>
//!          the status equal to TFunction_ES_WrongDefinition. <br>
//!          It registers the function in the scope of functions for this document. <br>
  Standard_EXPORT   static  Standard_Boolean NewFunction(const TDF_Label& L,const Standard_GUID& ID) ;
  //! Deletes a function attached to a label <L>. <br>
//!          It deletes a TFunction_Function attribute and a TFunction_GraphNode. <br>
//!          It deletes the functions from the scope of function of this document. <br>
  Standard_EXPORT   static  Standard_Boolean DeleteFunction(const TDF_Label& L) ;
  //! Updates dependencies for all functions of the scope. <br>
//!          It returns false in case of an error. <br>//! An empty constructor. <br>
  Standard_EXPORT   static  Standard_Boolean UpdateDependencies(const TDF_Label& Access) ;
  
  Standard_EXPORT   TFunction_IFunction();
  //! A constructor. <br>
//!          Initializes the interface by the label of function. <br>
  Standard_EXPORT   TFunction_IFunction(const TDF_Label& L);
  //! Initializes the interface by the label of function. <br>
  Standard_EXPORT     void Init(const TDF_Label& L) ;
  //! Returns a label of the function. <br>
  Standard_EXPORT    const TDF_Label& Label() const;
  //! Updates the dependencies of this function only. <br>
  Standard_EXPORT     Standard_Boolean UpdateDependencies() const;
  //! The method fills-in the list by labels, <br>
//!          where the arguments of the function are located. <br>
  Standard_EXPORT     void Arguments(TDF_LabelList& args) const;
  //! The method fills-in the list by labels, <br>
//!          where the results of the function are located. <br>
  Standard_EXPORT     void Results(TDF_LabelList& res) const;
  //! Returns a list of previous functions. <br>
  Standard_EXPORT     void GetPrevious(TDF_LabelList& prev) const;
  //! Returns a list of next functions. <br>
  Standard_EXPORT     void GetNext(TDF_LabelList& prev) const;
  //! Returns the execution status of the function. <br>
  Standard_EXPORT     TFunction_ExecutionStatus GetStatus() const;
  //! Defines an execution status for a function. <br>
  Standard_EXPORT     void SetStatus(const TFunction_ExecutionStatus status) const;
  //! Returns the scope of all functions. <br>
  Standard_EXPORT    const TFunction_DoubleMapOfIntegerLabel& GetAllFunctions() const;
  //! Returns the Logbook - keeper of modifications. <br>
  Standard_EXPORT     TFunction_Logbook& GetLogbook() const;
  //! Returns a driver of the function. <br>
  Standard_EXPORT     Handle_TFunction_Driver GetDriver(const Standard_Integer thread = 0) const;
  //! Returns a graph node of the function. <br>
  Standard_EXPORT     Handle_TFunction_GraphNode GetGraphNode() const;





protected:





private:



TDF_Label myLabel;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif