Server IP : 172.67.216.182 / Your IP : 172.71.124.170 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/python/object/ |
Upload File : |
// (C) Copyright R.W. Grosse-Kunstleve 2002. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PYTHON_OBJECT_PICKLE_SUPPORT_RWGK20020603_HPP # define BOOST_PYTHON_OBJECT_PICKLE_SUPPORT_RWGK20020603_HPP # include <boost/python/detail/prefix.hpp> namespace boost { namespace python { namespace api { class object; } using api::object; class tuple; BOOST_PYTHON_DECL object const& make_instance_reduce_function(); struct pickle_suite; namespace error_messages { template <class T> struct missing_pickle_suite_function_or_incorrect_signature {}; inline void must_be_derived_from_pickle_suite(pickle_suite const&) {} } namespace detail { struct pickle_suite_registration; } struct pickle_suite { private: struct inaccessible {}; friend struct detail::pickle_suite_registration; public: static inaccessible* getinitargs() { return 0; } static inaccessible* getstate() { return 0; } static inaccessible* setstate() { return 0; } static bool getstate_manages_dict() { return false; } }; namespace detail { struct pickle_suite_registration { typedef pickle_suite::inaccessible inaccessible; template <class Class_, class Tgetinitargs> static void register_( Class_& cl, tuple (*getinitargs_fn)(Tgetinitargs), inaccessible* (* /*getstate_fn*/)(), inaccessible* (* /*setstate_fn*/)(), bool) { cl.enable_pickling_(false); cl.def("__getinitargs__", getinitargs_fn); } template <class Class_, class Rgetstate, class Tgetstate, class Tsetstate, class Ttuple> static void register_( Class_& cl, inaccessible* (* /*getinitargs_fn*/)(), Rgetstate (*getstate_fn)(Tgetstate), void (*setstate_fn)(Tsetstate, Ttuple), bool getstate_manages_dict) { cl.enable_pickling_(getstate_manages_dict); cl.def("__getstate__", getstate_fn); cl.def("__setstate__", setstate_fn); } template <class Class_, class Tgetinitargs, class Rgetstate, class Tgetstate, class Tsetstate, class Ttuple> static void register_( Class_& cl, tuple (*getinitargs_fn)(Tgetinitargs), Rgetstate (*getstate_fn)(Tgetstate), void (*setstate_fn)(Tsetstate, Ttuple), bool getstate_manages_dict) { cl.enable_pickling_(getstate_manages_dict); cl.def("__getinitargs__", getinitargs_fn); cl.def("__getstate__", getstate_fn); cl.def("__setstate__", setstate_fn); } template <class Class_> static void register_( Class_&, ...) { typedef typename error_messages::missing_pickle_suite_function_or_incorrect_signature< Class_>::error_type error_type; } }; template <typename PickleSuiteType> struct pickle_suite_finalize : PickleSuiteType, pickle_suite_registration {}; } // namespace detail }} // namespace boost::python #endif // BOOST_PYTHON_OBJECT_PICKLE_SUPPORT_RWGK20020603_HPP