#include "python.h"

namespace python {
   // Long & Long::operator=(const Long & obj) {{{

   Long::Long(const Object & obj) {
         set( PyNumber_Long( *obj ), true );
   }

   // }}}
   // Long::Long(int v) {{{
   
   Long::Long(int v) {
      set( PyLong_FromLong(static_cast< long >( v ) ), true );
   }
   
   // }}}
   // Long & Long::operator=(const Long & obj) {{{

   Long & Long::operator=(const Object & obj) {
      return (*this = *obj);
   }

   // }}}
   // Long & Long::operator=(PyObject * obj) {{{

   Long & Long::operator=(PyObject * obj) {
      if ( ptr() != obj ) {
         set( PyNumber_Long( obj ), true );
      }
      return *this;
   }

   // }}}
   // Long & Long::operator=(int v) {{{

   Long & Long::operator=(int v) {
      set( PyLong_FromLong( static_cast< long >( v ) ), true );
      return *this;
   }

   // }}}
   // Long & Long::operator=(long v) {{{

   Long & Long::operator=(long v) {
      set(PyLong_FromLong(v), true);
      return *this;
   }

   // }}}
   // long Long::operator long() const {{{

   Long::operator long() const {
      return PyLong_AsLong( ptr() );
   }

   // }}}
   // bool Long::accepts(PyObject * pyobj) const {{{

   bool Long::accepts(PyObject * pyobj) const {
      return (pyobj != NULL ) and PyLong_Check(pyobj);
   }

   // }}}

}


syntax highlighted by Code2HTML, v. 0.9.1