ossrv_pub/boost_apis/boost/python/long.hpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ossrv_pub/boost_apis/boost/python/long.hpp	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,68 @@
+// Copyright David Abrahams 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 LONG_DWA2002627_HPP
+# define LONG_DWA2002627_HPP
+
+# include <boost/python/detail/prefix.hpp>
+
+# include <boost/python/object.hpp>
+# include <boost/python/converter/pytype_object_mgr_traits.hpp>
+
+namespace boost { namespace python { 
+
+namespace detail
+{
+  struct BOOST_PYTHON_DECL long_base : object
+  {
+   protected:
+      long_base(); // new long_
+      explicit long_base(object_cref rhs);
+      explicit long_base(object_cref rhs, object_cref base);
+      
+      BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_base, object)
+          
+   private:
+      static detail::new_non_null_reference call(object const&);
+      static detail::new_non_null_reference call(object const&, object const&);
+  };
+}
+
+class long_ : public detail::long_base
+{
+    typedef detail::long_base base;
+ public:
+    long_() {} // new long_
+
+    template <class T>
+    explicit long_(T const& rhs)
+        : detail::long_base(object(rhs))
+    {
+    }
+
+    template <class T, class U>
+    explicit long_(T const& rhs, U const& base)
+        : detail::long_base(object(rhs), object(base))
+    {
+    }
+    
+ public: // implementation detail -- for internal use only
+    BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_, base)
+};
+
+//
+// Converter Specializations
+//
+namespace converter
+{
+  template <>
+  struct object_manager_traits<long_>
+      : pytype_object_manager_traits<&PyLong_Type,long_>
+  {
+  };
+}
+
+}} // namespace boost::python
+
+#endif // LONG_DWA2002627_HPP