Salome HOME
Fix for bug 0019870(Import/Export should show current directory).
[modules/geom.git] / src / GEOMImpl / GEOMImpl_PipeDriver.hxx
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library is distributed in the hope that it will be useful 
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20 //  File   : GEOMImpl_PipeDriver.ixx
21 //  Module : GEOMImpl
22
23 #ifndef _GEOMImpl_PipeDriver_HeaderFile
24 #define _GEOMImpl_PipeDriver_HeaderFile
25
26 #ifndef _TColStd_SequenceOfExtendedString_HeaderFile
27 #include <TColStd_SequenceOfExtendedString.hxx>
28 #endif
29 #ifndef _Standard_TypeMismatch_HeaderFile
30 #include <Standard_TypeMismatch.hxx>
31 #endif
32
33 #ifndef _Standard_HeaderFile
34 #include <Standard.hxx>
35 #endif
36
37 #ifndef _Standard_Macro_HeaderFile
38 #include <Standard_Macro.hxx>
39 #endif
40 #ifndef _Standard_HeaderFile
41 #include <Standard.hxx>
42 #endif
43 #ifndef _Standard_GUID_HeaderFile
44 #include <Standard_GUID.hxx>
45 #endif 
46
47 #ifndef _Handle_TFunction_Driver_HeaderFile
48 #include <Handle_TFunction_Driver.hxx>
49 #endif
50
51
52 class Standard_Transient;
53 class Handle_Standard_Type;
54 class Handle(TFunction_Driver);
55 class GEOMImpl_PipeDriver;
56
57 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_PipeDriver);
58
59 class Handle(GEOMImpl_PipeDriver) : public Handle(TFunction_Driver) {
60   public:
61     inline void* operator new(size_t,void* anAddress) 
62       {
63         return anAddress;
64       }
65     inline void* operator new(size_t size) 
66       { 
67         return Standard::Allocate(size); 
68       }
69     inline void  operator delete(void *anAddress) 
70       { 
71         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
72       }
73
74     Handle(GEOMImpl_PipeDriver)():Handle(TFunction_Driver)() {} 
75     Handle(GEOMImpl_PipeDriver)(const Handle(GEOMImpl_PipeDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) 
76      {
77      }
78
79     Handle(GEOMImpl_PipeDriver)(const GEOMImpl_PipeDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) 
80      {
81      }
82
83     Handle(GEOMImpl_PipeDriver)& operator=(const Handle(GEOMImpl_PipeDriver)& aHandle)
84      {
85       Assign(aHandle.Access());
86       return *this;
87      }
88
89     Handle(GEOMImpl_PipeDriver)& operator=(const GEOMImpl_PipeDriver* anItem)
90      {
91       Assign((Standard_Transient *)anItem);
92       return *this;
93      }
94
95     GEOMImpl_PipeDriver* operator->() 
96      {
97       return (GEOMImpl_PipeDriver *)ControlAccess();
98      }
99
100     GEOMImpl_PipeDriver* operator->() const 
101      {
102       return (GEOMImpl_PipeDriver *)ControlAccess();
103      }
104
105    Standard_EXPORT ~Handle(GEOMImpl_PipeDriver)() {};
106  
107    Standard_EXPORT static const Handle(GEOMImpl_PipeDriver) DownCast(const Handle(Standard_Transient)& AnObject);
108 };
109
110 #ifndef _TFunction_Driver_HeaderFile
111 #include <TFunction_Driver.hxx>
112 #endif
113 #ifndef _TFunction_Logbook_HeaderFile
114 #include <TFunction_Logbook.hxx>
115 #endif
116 #ifndef _Standard_CString_HeaderFile
117 #include <Standard_CString.hxx>
118 #endif
119
120 class TColStd_SequenceOfExtendedString;
121
122
123 class GEOMImpl_PipeDriver : public TFunction_Driver {
124
125 public:
126
127     inline void* operator new(size_t,void* anAddress) 
128       {
129         return anAddress;
130       }
131     inline void* operator new(size_t size) 
132       { 
133         return Standard::Allocate(size); 
134       }
135     inline void  operator delete(void *anAddress) 
136       { 
137         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
138       }
139
140   // Methods PUBLIC
141   // 
142   Standard_EXPORT GEOMImpl_PipeDriver();
143   Standard_EXPORT virtual  Standard_Integer Execute(TFunction_Logbook& log) const; 
144   Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {}
145   Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const
146   { return Standard_True; }
147   Standard_EXPORT static const Standard_GUID& GetID();
148   Standard_EXPORT ~GEOMImpl_PipeDriver() {};
149
150
151   // Type management
152   //
153   Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_PipeDriver_Type_();
154   Standard_EXPORT const Handle(Standard_Type)& DynamicType() const
155   { return STANDARD_TYPE(GEOMImpl_PipeDriver) ; }
156   Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const
157   { return (STANDARD_TYPE(GEOMImpl_PipeDriver) == AType ||
158             TFunction_Driver::IsKind(AType)); } 
159
160 };
161
162 #endif