Criando wrapper swig para C ++ (ponteiros) para python
Eu sou muito novo para swig e estou tentando criar um wrapper swig para usar alguns arquivos C ++ em python. Eu tenho a seguinte classe C ++.
Segue-se um excerto do código que estou a tentar converter:
<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>
Eu tenho tentado escrever um exemplo.i arquivo que aceitaria ponteiros para typedefs (uint8_t *) todos os dias hoje usando a ajuda da documentação do swig, mas eu tenho sido malsucedido.
O seguinte é um arquivo packet_buffer.i que eu tentei que não 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>Como faço para escrever um código swig para funções de membro que levam ponteiros para typedefs?Posso escrever um% apply comum que possa ser usado em todo o código ou terei que escrever especificidades para cada parâmetro INPUT, OUTPUT?