Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Utility.h File Reference
#include <memory>
#include <string>
#include <unordered_map>
#include <vector>
#include "Python.h"
#include "cppjit_interop.h"
Include dependency graph for Utility.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  cppjit::cpyrt::Utility::PyError_t
 
struct  cppjit::cpyrt::Utility::PyError_t::PyObjectDeleter
 
struct  cppjit::cpyrt::Utility::PyOperators
 

Namespaces

namespace  cppjit
 
namespace  cppjit::cpyrt
 
namespace  cppjit::cpyrt::Utility
 

Enumerations

enum  cppjit::cpyrt::Utility::ArgPreference { cppjit::cpyrt::Utility::kNone , cppjit::cpyrt::Utility::kPointer , cppjit::cpyrt::Utility::kReference , cppjit::cpyrt::Utility::kValue }
 

Functions

bool cppjit::cpyrt::Utility::AddToClass (PyObject *pyclass, const char *label, const char *func)
 
bool cppjit::cpyrt::Utility::AddToClass (PyObject *pyclass, const char *label, PyCallable *pyfunc)
 
bool cppjit::cpyrt::Utility::AddToClass (PyObject *pyclass, const char *label, PyCFunction cfunc, int flags=METH_VARARGS)
 
std::string cppjit::cpyrt::Utility::ClassName (PyObject *pyobj)
 
void cppjit::cpyrt::Utility::ConstructCallbackPreamble (const std::string &retType, const std::vector< std::string > &argtypes, std::ostringstream &code)
 
void cppjit::cpyrt::Utility::ConstructCallbackReturn (const std::string &retType, int nArgs, std::ostringstream &code)
 
std::string cppjit::cpyrt::Utility::ConstructTemplateArgs (PyObject *pyname, PyObject *tpArgs, PyObject *args=nullptr, ArgPreference=kNone, int argoff=0, int *pcnt=nullptr)
 
PyObject * cppjit::cpyrt::Utility::CT2CppName (PyObject *pytc, const char *cpd, bool allow_voidp)
 
std::string cppjit::cpyrt::Utility::CT2CppNameS (PyObject *pytc, bool allow_voidp)
 
size_t cppjit::cpyrt::Utility::FetchError (std::vector< PyError_t > &, bool is_cpp=false)
 
PyError_t cppjit::cpyrt::Utility::FetchPyError ()
 
PyCallable * cppjit::cpyrt::Utility::FindBinaryOperator (const std::string &lcname, const std::string &rcname, const char *op, interop::TCppScope_t scope=interop::TCppScope_t{}, bool reverse=false)
 
PyCallable * cppjit::cpyrt::Utility::FindBinaryOperator (PyObject *left, PyObject *right, const char *op, interop::TCppScope_t scope=interop::TCppScope_t{})
 
PyCallable * cppjit::cpyrt::Utility::FindUnaryOperator (PyObject *pyclass, const char *op)
 
PyObject * cppjit::cpyrt::Utility::FuncPtr2StdFunction (const std::string &retType, const std::string &signature, void *address)
 
Py_ssize_t cppjit::cpyrt::Utility::GetBuffer (PyObject *pyobject, char tc, int size, void *&buf, bool check=true)
 
std::vector< Cpp::TemplateArgInfo > cppjit::cpyrt::Utility::GetTemplateArgsTypes (PyObject *scope, PyObject *tpArgs, PyObject *args=nullptr, ArgPreference=kNone, int argoff=0, int *pcnt=nullptr)
 
bool cppjit::cpyrt::Utility::IncludePython ()
 
bool cppjit::cpyrt::Utility::InitProxy (PyObject *module, PyTypeObject *pytype, const char *name)
 
bool cppjit::cpyrt::Utility::IsSTLIterator (const std::string &classname)
 
std::string cppjit::cpyrt::Utility::MapOperatorName (const std::string &name, bool bTakesParames, bool *stubbed=nullptr)
 
PyObject * cppjit::cpyrt::Utility::PyErr_Occurred_WithGIL ()
 
unsigned long cppjit::cpyrt::PyLongOrInt_AsULong (PyObject *pyobject)
 
PY_ULONG_LONG cppjit::cpyrt::PyLongOrInt_AsULong64 (PyObject *pyobject)
 
void cppjit::cpyrt::Utility::RestorePyError (PyError_t &error)
 
void cppjit::cpyrt::Utility::SetDetailedException (std::vector< PyError_t > &&errors, PyObject *topmsg, PyObject *defexc)
 
std::unordered_map< std::string, char > const & cppjit::cpyrt::Utility::TypecodeMap ()