mirror of https://github.com/swig/swig
78 lines
2.6 KiB
OpenEdge ABL
78 lines
2.6 KiB
OpenEdge ABL
/* This interface file tests whether SWIG handles the Microsoft __int64 type through the use of
|
|
applying the long long typemaps. The generated code should not have any instances of long long. */
|
|
|
|
%module long_long_apply
|
|
|
|
%{
|
|
#ifdef _MSC_VER /* Visual C++ */
|
|
typedef __int64 LongLong;
|
|
typedef unsigned __int64 UnsignedLongLong;
|
|
#else
|
|
typedef long long LongLong;
|
|
typedef unsigned long long UnsignedLongLong;
|
|
#endif
|
|
%}
|
|
|
|
%apply long long { LongLong };
|
|
%apply unsigned long long { UnsignedLongLong };
|
|
|
|
%apply const long long & { const LongLong & };
|
|
%apply const unsigned long long & { const UnsignedLongLong & };
|
|
|
|
%inline %{
|
|
// pass by value
|
|
LongLong value1(LongLong x) { return x; }
|
|
UnsignedLongLong value2(UnsignedLongLong x) { return x; }
|
|
|
|
// pass by reference
|
|
const LongLong &ref1(const LongLong &x) { return x; }
|
|
const UnsignedLongLong &ref2(const UnsignedLongLong &x) { return x; }
|
|
|
|
// global variables
|
|
LongLong global1;
|
|
UnsignedLongLong global2;
|
|
|
|
// global reference variables
|
|
const LongLong& global_ref1 = global1;
|
|
const UnsignedLongLong& global_ref2 = global2;
|
|
%}
|
|
|
|
|
|
// typemaps library
|
|
%include "typemaps.i"
|
|
%apply long long *INPUT { LongLong *INPUT };
|
|
%apply unsigned long long *INPUT { UnsignedLongLong *INPUT };
|
|
|
|
%apply long long *OUTPUT { LongLong *OUTPUT };
|
|
%apply unsigned long long *OUTPUT { UnsignedLongLong *OUTPUT };
|
|
|
|
%apply long long *INOUT { LongLong *INOUT };
|
|
%apply unsigned long long *INOUT { UnsignedLongLong *INOUT };
|
|
|
|
%apply long long &INPUT { LongLong &INPUT };
|
|
%apply unsigned long long &INPUT { UnsignedLongLong &INPUT };
|
|
|
|
%apply long long &OUTPUT { LongLong &OUTPUT };
|
|
%apply unsigned long long &OUTPUT { UnsignedLongLong &OUTPUT };
|
|
|
|
%apply long long &INOUT { LongLong &INOUT };
|
|
%apply unsigned long long &INOUT { UnsignedLongLong &INOUT };
|
|
|
|
%inline %{
|
|
LongLong in_longlong(LongLong *INPUT) { return *INPUT; }
|
|
UnsignedLongLong in_ulonglong(UnsignedLongLong *INPUT) { return *INPUT; }
|
|
LongLong inr_longlong(LongLong &INPUT) { return INPUT; }
|
|
UnsignedLongLong inr_ulonglong(UnsignedLongLong &INPUT) { return INPUT; }
|
|
|
|
void out_longlong(LongLong x, LongLong *OUTPUT) { *OUTPUT = x; }
|
|
void out_ulonglong(UnsignedLongLong x, UnsignedLongLong *OUTPUT) { *OUTPUT = x; }
|
|
void outr_longlong(LongLong x, LongLong &OUTPUT) { OUTPUT = x; }
|
|
void outr_ulonglong(UnsignedLongLong x, UnsignedLongLong &OUTPUT) { OUTPUT = x; }
|
|
|
|
void inout_longlong(LongLong *INOUT) { *INOUT = *INOUT; }
|
|
void inout_ulonglong(UnsignedLongLong *INOUT) { *INOUT = *INOUT; }
|
|
void inoutr_longlong(LongLong &INOUT) { INOUT = INOUT; }
|
|
void inoutr_ulonglong(UnsignedLongLong &INOUT) { INOUT = INOUT; }
|
|
%}
|
|
|