Creando swig wrapper para C ++ (punteros) a python
Soy muy nuevo en swig y estoy intentando crear una envoltura de swig para usar algunos archivos C ++ en Python. Tengo la siguiente clase de C ++.
El siguiente es un fragmento del código que estoy tratando de convertir:
<code>/*packet_buffer.h*/ class CPacketBuffer { public: // construct based on given buffer, data is not copied CPacketBuffer(uint8_t* data, uint32_t length) { mpBuffer = data; mLength = length; mHead = 0; mTail = length; } uint8_t* GetBuffer() { return (mpBuffer + mHead); } void Add(const uint8_t* data, uint32_t length) { if ((mTail + length) > mLength) { length = (mLength - mTail); } //.... } </code>
He estado tratando de escribir un archivo example.i que acepte punteros a typedefs (uint8_t *) todo el día de hoy usando la ayuda de la documentación de swig, pero no he tenido éxito.
El siguiente es un archivo packet_buffer.i que he intentado que no funciona.
<code>%module packet_buffer %include typemaps.i %apply unsigned char* {uint8_t*}; %apply unit8_t *INPUT {uint8_t *data}; %{ #define SWIG_FILE_WITH_INIT #include "../include/packet_buffer.h" %} %include "../include/packet_buffer.h" </code>¿Cómo escribo un código swig para funciones miembro que llevan punteros a typedefs?¿Puedo escribir un% de aplicación común que pueda usarse en todo el código o tendré que escribir detalles para cada parámetro de ENTRADA, SALIDA?