Argh! Name collision!

Alf P. Steinbach /Usenet alf.p.steinbach+usenet at gmail.com
Wed Jul 7 19:47:01 EDT 2010


* rantingrick, on 07.07.2010 07:42:
> On Jul 6, 9:11 pm, "Alf P. Steinbach /Usenet"<alf.p.steinbach
> +use... at gmail.com>  wrote:
>
>> "pyni"! Pronounced like "tiny"! Yay!
>
> hmm, how's about an alternate spelling... "pyknee", or "pynee", or
> "pynie" ... considering those are not taken either?

Hm, for pure shock value I think I'll use the acronym PYthon Native Interface 
Support.

pynis! :-)

A set of C++ classes to ease the writing of extensions.

Like,


<code file="Ptr.h">
// progrock.pynis  --  "Python Native Interface Support"
// A simple C++ framework for writing Python 3.x extensions.
//
// Copyright (C) Alf P. Steinbach, 2010.

#ifndef PYNIS_PTR_H
#define PYNIS_PTR_H
#include <progrock/cppx/devsupport/better_experience.h>


//----------------------------------------- Dependencies:

#include <Python.h>
#include <assert.h>
#include <algorithm>



//----------------------------------------- Interface:

namespace progrock{ namespace pynis {

     enum DoAddRef { doAddRef };

     class Ptr
     {
     private:
         PyObject*   p_;

     public:
         Ptr( PyObject* p = 0 ): p_( p )
         {}

         Ptr( PyObject* p, DoAddRef ): p_( p )
         {
             assert( p != 0 );
             Py_INCREF( p_ );
         }

         Ptr( Ptr const& other ): p_( other.p_ )
         {
             Py_XINCREF( p_ );
         }

         ~Ptr()
         {
             Py_XDECREF( p_ );
         }

         void swapWith( Ptr& other ) { std::swap( p_, other.p_ ); }
         Ptr& operator=( Ptr other ) { swapWith( other ); return *this; }

         PyObject* get() const       { return p_; }

         PyObject* release()
         {
             PyObject* const result  = p_;
             Py_XDECREF( p_ );
             p_ = 0;
             return result;
         }
     };

} }  // namespace progrock::pynis


#endif
</code>


Cheers,

- Alf (shocked)

PS: Darn, forgot to google it. But I think it's unlikely the name's already in use!

-- 
blog at <url: http://alfps.wordpress.com>



More information about the Python-list mailing list