diff options
| author | Ted Ross <tross@apache.org> | 2009-08-24 15:55:14 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2009-08-24 15:55:14 +0000 |
| commit | 66e450e61e2e6fc4b31126ddd21d1778550470ca (patch) | |
| tree | f262b37a8fc4b3d9ce6d3f029bb19bc9b1c03535 /cpp/bindings/qmf/ruby | |
| parent | d2b870c0bb6f1b048d1cdf6911f9b23a0153a634 (diff) | |
| download | qpid-python-66e450e61e2e6fc4b31126ddd21d1778550470ca.tar.gz | |
Added QMF tests for method invocation and numeric types.
Improved the swig typemaps to handle different numeric cases.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@807288 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings/qmf/ruby')
| -rw-r--r-- | cpp/bindings/qmf/ruby/qmf.rb | 7 | ||||
| -rw-r--r-- | cpp/bindings/qmf/ruby/ruby.i | 33 |
2 files changed, 38 insertions, 2 deletions
diff --git a/cpp/bindings/qmf/ruby/qmf.rb b/cpp/bindings/qmf/ruby/qmf.rb index f3915e9c02..79b18423db 100644 --- a/cpp/bindings/qmf/ruby/qmf.rb +++ b/cpp/bindings/qmf/ruby/qmf.rb @@ -174,12 +174,19 @@ module Qmf @impl = Qmfengine::ObjectId.new end end + def object_num_high return @impl.getObjectNumHi end + def object_num_low return @impl.getObjectNumLo end + + def ==(other) + return (@impl.getObjectNumHi == other.impl.getObjectNumHi) && + (@impl.getObjectNumLo == other.impl.getObjectNumLo) + end end class Arguments diff --git a/cpp/bindings/qmf/ruby/ruby.i b/cpp/bindings/qmf/ruby/ruby.i index a8a2a87a97..8c2da1b494 100644 --- a/cpp/bindings/qmf/ruby/ruby.i +++ b/cpp/bindings/qmf/ruby/ruby.i @@ -43,7 +43,10 @@ %typemap (in) uint32_t { - $1 = NUM2UINT ($input); + if (TYPE($input) == T_BIGNUM) + $1 = NUM2UINT($input); + else + $1 = FIX2UINT($input); } %typemap (out) uint32_t @@ -51,6 +54,19 @@ $result = UINT2NUM((unsigned int) $1); } +%typemap (in) int32_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2INT($input); + else + $1 = FIX2INT($input); +} + +%typemap (out) int32_t +{ + $result = INT2NUM((int) $1); +} + %typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint32_t { $1 = FIXNUM_P($input); } @@ -62,7 +78,20 @@ %typemap (out) uint64_t { - $result = ULONG2NUM((unsigned long) $1); + $result = ULONG2NUM((long) $1); +} + +%typemap (in) int64_t +{ + if (TYPE($input) == T_BIGNUM) + $1 = NUM2LONG($input); + else + $1 = FIX2LONG($input); +} + +%typemap (out) int64_t +{ + $result = LONG2NUM((long) $1); } %typemap (typecheck, precedence=SWIG_TYPECHECK_INTEGER) uint64_t { |
