swig/Examples/test-suite/director_binary_string_rev_...

39 lines
716 B
OpenEdge ABL

%module(directors="1") director_binary_string_rev_len;
%feature("director") Callback;
#if !defined(SWIGC)
/* There is no concept of a higher level binary string in C */
%apply (size_t LENGTH, char *STRING) { (int sizeAA, char *dataBufferAA) };
#endif
%inline %{
#include <string.h>
#define BUFFER_SIZE_AA 8
class Callback {
public:
virtual ~Callback() {}
virtual int run(int sizeAA, char* dataBufferAA) {
return 0;
}
};
class Caller {
private:
Callback *_callback;
public:
Caller(Callback *cb): _callback(cb) {}
int call() {
if (_callback) {
char aa[BUFFER_SIZE_AA];
memset(aa, 9, BUFFER_SIZE_AA);
return _callback->run(BUFFER_SIZE_AA, aa);
}
return 0;
}
};
%}