mirror of https://github.com/swig/swig
39 lines
716 B
OpenEdge ABL
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;
|
|
}
|
|
};
|
|
|
|
%}
|