1 // Copyright (C) 2007-2024 CEA, EDF
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 // Author : Anthony Geay (CEA/DEN)
21 namespace INTERP_KERNEL
26 Exception(const char* what);
27 ~Exception() throw ();
28 const char *what() const throw ();
31 std::string __str__() const
33 return std::string(self->what());
40 * ABN: Install default exception handler: this catches all INTERP_KERNEL::Exception (even when no
41 * except declaration was added to the function declaration) and propagates it to the Python level.
47 catch (INTERP_KERNEL::Exception& _e) {
48 // Reraise with SWIG_Python_Raise
49 SWIG_Python_Raise(SWIG_NewPointerObj((new INTERP_KERNEL::Exception(static_cast< const INTERP_KERNEL::Exception& >(_e))),SWIGTYPE_p_INTERP_KERNEL__Exception,SWIG_POINTER_OWN), "INTERP_KERNEL::Exception", SWIGTYPE_p_INTERP_KERNEL__Exception);
50 #ifdef MEDCOUPLING_SWIG4_COMPAT
63 void declareAsNew() const;
64 virtual void updateTime() const;
65 unsigned int getTimeOfThis() const;
73 enum class DeallocType
79 const char *MEDCouplingVersionStr();
80 int MEDCouplingVersion();
81 int MEDCouplingSizeOfVoidStar();
82 int MEDCouplingSizeOfIDs();
83 bool MEDCouplingByteOrder();
84 const char *MEDCouplingByteOrderStr();
85 bool IsCXX11Compiled();
90 std::size_t getHeapMemorySize() const;
91 std::string getHeapMemorySizeStr() const;
92 bool isObjectInTheProgeny(const BigMemoryObject *obj) const;
93 std::size_t getHeapMemorySizeWithoutChildren() const;
94 std::string debugHeapMemorySize() const;
95 std::string getClassName() const;
96 virtual ~BigMemoryObject();
99 virtual PyObject *getDirectChildren() const
101 std::vector<const BigMemoryObject *> c(self->getDirectChildren());
102 PyObject *ret(PyList_New(c.size()));
103 for(std::size_t i=0;i<c.size();i++)
104 PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(c[i]),SWIGTYPE_p_MEDCoupling__BigMemoryObject, 0 | 0 ));
108 PyObject *getAllTheProgeny() const
110 std::vector<const BigMemoryObject *> c(self->getAllTheProgeny());
111 PyObject *ret(PyList_New(c.size()));
112 for(std::size_t i=0;i<c.size();i++)
113 PyList_SetItem(ret,i,SWIG_NewPointerObj(SWIG_as_voidptr(c[i]),SWIGTYPE_p_MEDCoupling__BigMemoryObject, 0 | 0 ));
117 static std::size_t GetHeapMemorySizeOfObjs(PyObject *objs)
119 std::vector<const BigMemoryObject *> cppObjs;
120 convertFromPyObjVectorOfObj<const MEDCoupling::BigMemoryObject *>(objs,SWIGTYPE_p_MEDCoupling__BigMemoryObject,"BigMemoryObject",cppObjs);
121 return BigMemoryObject::GetHeapMemorySizeOfObjs(cppObjs);
126 class RefCountObjectOnly
129 bool decrRef() const;
130 void incrRef() const;
131 int getRCValue() const;
133 ~RefCountObjectOnly();
136 class RefCountObject : public RefCountObjectOnly, public BigMemoryObject
145 static GlobalDict *GetInstance();
146 bool hasKey(const std::string& key) const;
147 std::string value(const std::string& key) const;
148 std::vector<std::string> keys() const;
149 void erase(const std::string& key);
151 void setKeyValue(const std::string& key, const std::string& value);
152 void setKeyValueForce(const std::string& key, const std::string& value);
158 std::string __str__() const
160 return self->printSelf();
168 PyObject *MEDCouplingVersionMajMinRel()
170 int tmp0=0,tmp1=0,tmp2=0;
171 MEDCouplingVersionMajMinRel(tmp0,tmp1,tmp2);
172 PyObject *res = PyList_New(3);
173 PyList_SetItem(res,0,SWIG_From_int(tmp0));
174 PyList_SetItem(res,1,SWIG_From_int(tmp1));
175 PyList_SetItem(res,2,SWIG_From_int(tmp2));
179 bool MEDCouplingHasNumPyBindings()
188 bool MEDCouplingHasSciPyBindings()
197 bool MEDCouplingUse64BitIDs()
199 #ifndef MEDCOUPLING_USE_64BIT_IDS
206 std::string MEDCouplingCompletionScript()
208 static const char script[]="import rlcompleter,readline\nreadline.parse_and_bind('tab:complete')";
209 std::ostringstream oss; oss << "MEDCouplingCompletionScript : error when trying to activate completion ! readline not present ?\nScript is :\n" << script;
210 if(PyRun_SimpleString(script)!=0)
211 throw INTERP_KERNEL::Exception(oss.str().c_str());
212 return std::string(script);
217 def INTERPKERNELExceptionReduceFunct(a,b):
218 ret=InterpKernelException.__new__(a)
221 def INTERPKERNELExceptionReduce(self):
222 return INTERPKERNELExceptionReduceFunct,(InterpKernelException,(self.what(),))