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?

questionAnswers(1)

yourAnswerToTheQuestion