Tworzenie opakowania swig dla C ++ (wskaźniki) do Pythona
Jestem bardzo nowym użytkownikiem swig i próbuję stworzyć opakowanie swig w celu użycia kilku plików C ++ w pythonie. Mam następującą klasę C ++.
Poniżej znajduje się fragment kodu, który próbuję przekonwertować:
<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>
Próbowałem napisać plik example.i, który przez cały dzień akceptowałby wskaźniki do typedefs (uint8_t *) przy użyciu pomocy z dokumentacji swig, ale nie udało mi się.
Poniżej znajduje się plik packet_buffer.i, którego próbowałem, który nie działa.
<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>Jak napisać kod swig dla funkcji składowych, które przenoszą wskaźniki na typedefs?Czy mogę napisać wspólny% zastosowania, który może być użyty w całym kodzie lub czy będę musiał napisać specyfikację dla każdego parametru WEJŚCIE, WYJŚCIA?