I have been able to test _raw_pgconn using SWIG, as documented here https://sourceforge.net/p/swig/mailman/message/27919299/ , the trick to use PyCapsule and SWIG together is to specifically map the type with a directive like this one:
the name of the method does not really matter to me.
_raw_pgconn() create a Capsule object that should be destroyed.
What do you think about a factory to create and destroy a PyCapsule that contains the PGconn pointer?
Kind Regards
Ch.F.
------------------------------------------------------------- Good design can't stop bad implementation
Il giovedì 27 settembre 2018, 22:11:35 CEST, Federico Di Gregorio <fog@dndg.it> ha scritto:
On 09/27/2018 09:57 PM, Christian Ferrari wrote:
> Thanks, for the fix, now the function works, but unfortunately it's a > dead end in the SWIG realm...Here's the statement: > http://www.swig.org/Doc2.0/SWIGDocumentation.html#Python_nn18 > [...] > *However, the inverse operation is not possible, i.e., you can't build a > SWIG pointer object from a raw integer value.* > [...] > > PyCapsule https://docs.python.org/2/c-api/capsule.html, suggested by > Federico seems a more viable approach: > https://bfroehle.com/2011/07/18/python-capsules/ > > If Psycopg was able to retrieve a PyCapsule, XTA should be able to use > it and the Python interpreter would be a gateway between two C/C++ > distinct modules (Psycopg and XTA). > I'm going to perform some experiments in the XTA wrapper before coming > back to this mail thread.
If you want the capsule, just pull from my report: