diff options
author | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
---|---|---|
committer | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
commit | b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806 (patch) | |
tree | 2a23209faf0fea5586a6d4b9cee60d1b318d29fe /contrib/libs/pycxx/Python3/Extensions.hxx | |
parent | 559174a9144de40d6bb3997ea4073c82289b4974 (diff) | |
download | ydb-b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806.tar.gz |
remove kikimr/driver DEPENDS
Diffstat (limited to 'contrib/libs/pycxx/Python3/Extensions.hxx')
-rwxr-xr-x | contrib/libs/pycxx/Python3/Extensions.hxx | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/contrib/libs/pycxx/Python3/Extensions.hxx b/contrib/libs/pycxx/Python3/Extensions.hxx deleted file mode 100755 index 42516eb1c64..00000000000 --- a/contrib/libs/pycxx/Python3/Extensions.hxx +++ /dev/null @@ -1,189 +0,0 @@ -//----------------------------------------------------------------------------- -// -// Copyright (c) 1998 - 2007, The Regents of the University of California -// Produced at the Lawrence Livermore National Laboratory -// All rights reserved. -// -// This file is part of PyCXX. For details,see http://cxx.sourceforge.net/. The -// full copyright notice is contained in the file COPYRIGHT located at the root -// of the PyCXX distribution. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the disclaimer below. -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the disclaimer (as noted below) in the -// documentation and/or materials provided with the distribution. -// - Neither the name of the UC/LLNL nor the names of its contributors may be -// used to endorse or promote products derived from this software without -// specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OF THE UNIVERSITY OF -// CALIFORNIA, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -// DAMAGE. -// -//----------------------------------------------------------------------------- - -#ifndef __CXX_Extensions__h -#define __CXX_Extensions__h - - -#ifdef _MSC_VER -// disable warning C4786: symbol greater than 255 character, -// okay to ignore -#pragma warning( disable: 4786 ) -#endif - -#include "../WrapPython.h" -#include "../Version.hxx" -#include "Config.hxx" -#include "CxxDebug.hxx" -#include "Objects.hxx" - -extern "C" { extern PyObject py_object_initializer; } - -#include <vector> -#include <map> - -// ---------------------------------------------------------------------- - -namespace Py -{ - class ExtensionModuleBase; - - // Make an Exception Type for use in raising custom exceptions - class ExtensionExceptionType : public Object - { - public: - ExtensionExceptionType(); - virtual ~ExtensionExceptionType(); - - // call init to create the type - void init( ExtensionModuleBase &module, const std::string &name, ExtensionExceptionType &parent ); - void init( ExtensionModuleBase &module, const std::string &name ); - }; - - class MethodTable - { - public: - MethodTable(); - virtual ~MethodTable(); - - void add( const char *method_name, PyCFunction f, const char *doc="", int flag=1 ); - PyMethodDef *table(); - - protected: - std::vector<PyMethodDef> t; // accumulator of PyMethodDef's - PyMethodDef *mt; // Actual method table produced when full - - static PyMethodDef method( const char* method_name, PyCFunction f, int flags=1, const char* doc="" ); - - private: - // - // prevent the compiler generating these unwanted functions - // - MethodTable( const MethodTable &m ); //unimplemented - void operator=( const MethodTable &m ); //unimplemented - - }; // end class MethodTable - - // Note: Python calls noargs as varargs buts args==NULL - extern "C" typedef PyObject *(*method_noargs_call_handler_t)( PyObject *_self, PyObject * ); - extern "C" typedef PyObject *(*method_varargs_call_handler_t)( PyObject *_self, PyObject *_args ); - extern "C" typedef PyObject *(*method_keyword_call_handler_t)( PyObject *_self, PyObject *_args, PyObject *_dict ); - - template<class T> - class MethodDefExt - { - public: - typedef Object (T::*method_noargs_function_t)(); - typedef Object (T::*method_varargs_function_t)( const Tuple &args ); - typedef Object (T::*method_keyword_function_t)( const Tuple &args, const Dict &kws ); - - // NOARGS - MethodDefExt - ( - const char *_name, - method_noargs_function_t _function, - method_noargs_call_handler_t _handler, - const char *_doc - ) - { - ext_meth_def.ml_name = const_cast<char *>( _name ); - ext_meth_def.ml_meth = reinterpret_cast<method_varargs_call_handler_t>( _handler ); - ext_meth_def.ml_flags = METH_NOARGS; - ext_meth_def.ml_doc = const_cast<char *>( _doc ); - - ext_noargs_function = _function; - ext_varargs_function = NULL; - ext_keyword_function = NULL; - } - - // VARARGS - MethodDefExt - ( - const char *_name, - method_varargs_function_t _function, - method_varargs_call_handler_t _handler, - const char *_doc - ) - { - ext_meth_def.ml_name = const_cast<char *>( _name ); - ext_meth_def.ml_meth = reinterpret_cast<method_varargs_call_handler_t>( _handler ); - ext_meth_def.ml_flags = METH_VARARGS; - ext_meth_def.ml_doc = const_cast<char *>( _doc ); - - ext_noargs_function = NULL; - ext_varargs_function = _function; - ext_keyword_function = NULL; - } - - // VARARGS + KEYWORD - MethodDefExt - ( - const char *_name, - method_keyword_function_t _function, - method_keyword_call_handler_t _handler, - const char *_doc - ) - { - ext_meth_def.ml_name = const_cast<char *>( _name ); - ext_meth_def.ml_meth = reinterpret_cast<method_varargs_call_handler_t>( _handler ); - ext_meth_def.ml_flags = METH_VARARGS|METH_KEYWORDS; - ext_meth_def.ml_doc = const_cast<char *>( _doc ); - - ext_noargs_function = NULL; - ext_varargs_function = NULL; - ext_keyword_function = _function; - } - - ~MethodDefExt() - {} - - PyMethodDef ext_meth_def; - method_noargs_function_t ext_noargs_function; - method_varargs_function_t ext_varargs_function; - method_keyword_function_t ext_keyword_function; - Object py_method; - }; -} // Namespace Py - -#include "ExtensionModule.hxx" -#include "PythonType.hxx" -#include "ExtensionTypeBase.hxx" -#include "ExtensionOldType.hxx" -#include "ExtensionType.hxx" - -// End of CXX_Extensions.h -#endif |