interface feature support for references
This commit is contained in:
parent
eb15ba1638
commit
3eec3e2ea5
3 changed files with 30 additions and 6 deletions
|
|
@ -93,5 +93,19 @@ public class multiple_inheritance_abstract_runme {
|
|||
check(multiple_inheritance_abstract.InputPtrCBase2(d1)!=4, "InputPtrCBase2(), Derived1 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputPtrCBase1(cb1)!=1, "InputPtrCBase1(), CBase1 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputPtrCBase2(cb2)!=2, "InputPtrCBase2(), CBase2 as a parameter failed in multiple_inheritance_abstract");
|
||||
|
||||
//Reference parameters
|
||||
//Test ABase1 as a parameter
|
||||
check(multiple_inheritance_abstract.InputRefABase1(d2)!=5, "InputRefABase1() through Derived2 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefABase1(d3)!=9, "InputRefABase1() through Derived3 as a parameter failed in multiple_inheritance_abstract");
|
||||
|
||||
//Test CBase1 CBase2 as parameters
|
||||
check(multiple_inheritance_abstract.InputRefCBase1(d1)!=3, "InputRefCBase1(), Derived1 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase1(d2)!=6, "InputRefCBase1(), Derived2 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase1(d3)!=7, "InputRefCBase1(), Derived3 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase2(d3)!=8, "InputRefCBase2(), Derived3 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase2(d1)!=4, "InputRefCBase2(), Derived1 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase1(cb1)!=1, "InputRefCBase1(), CBase1 as a parameter failed in multiple_inheritance_abstract");
|
||||
check(multiple_inheritance_abstract.InputRefCBase2(cb2)!=2, "InputRefCBase2(), CBase2 as a parameter failed in multiple_inheritance_abstract");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ DECLARE_INTERFACE_RENAME(CBase2, CBase2, SWIGTYPE_CBase2)
|
|||
int InputValueCBase2(CBase2 cb2) {
|
||||
return cb2.cbase2();
|
||||
}
|
||||
|
||||
int InputPtrABase1(ABase1 *pab1) {
|
||||
return pab1->abase1();
|
||||
}
|
||||
|
|
@ -102,4 +103,13 @@ DECLARE_INTERFACE_RENAME(CBase2, CBase2, SWIGTYPE_CBase2)
|
|||
return pcb2->cbase2();
|
||||
}
|
||||
|
||||
int InputRefABase1(ABase1 &rab1) {
|
||||
return rab1.abase1();
|
||||
}
|
||||
int InputRefCBase1(CBase1 &rcb1) {
|
||||
return rcb1.cbase1y();
|
||||
}
|
||||
int InputRefCBase2(CBase2 &rcb2) {
|
||||
return rcb2.cbase2();
|
||||
}
|
||||
%}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
%define DECLARE_INTERFACE_(CTYPE, INTERFACE, IMPL)
|
||||
%feature("interface", name = "INTERFACE", cptr = #INTERFACE ## "_getCPtr") CTYPE;
|
||||
%typemap(jstype) CTYPE *, const CTYPE & "INTERFACE"
|
||||
%typemap(jtype, nopgcpp="1") CTYPE *, const CTYPE & "long"
|
||||
%typemap(javadirectorout) CTYPE *, const CTYPE & "$javacall." ## #INTERFACE ## "_getCPtr()"
|
||||
%typemap(javadirectorin) CTYPE *, const CTYPE & "($jniinput == 0) ? null : (INTERFACE)new IMPL($jniinput, false)"
|
||||
%typemap(jstype) CTYPE *, CTYPE & "INTERFACE"
|
||||
%typemap(jtype, nopgcpp="1") CTYPE *, CTYPE & "long"
|
||||
%typemap(javadirectorout) CTYPE *, CTYPE & "$javacall." ## #INTERFACE ## "_getCPtr()"
|
||||
%typemap(javadirectorin) CTYPE *, CTYPE & "($jniinput == 0) ? null : (INTERFACE)new IMPL($jniinput, false)"
|
||||
%typemap(javain) CTYPE * "($javainput == null) ? 0 : $javainput." ## #INTERFACE ## "_getCPtr()"
|
||||
%typemap(javain) const CTYPE & "$javainput." ## #INTERFACE ## "_getCPtr()"
|
||||
%typemap(javaout) CTYPE *, const CTYPE & {
|
||||
%typemap(javain) CTYPE & "$javainput." ## #INTERFACE ## "_getCPtr()"
|
||||
%typemap(javaout) CTYPE *, CTYPE & {
|
||||
long cPtr = $jnicall;
|
||||
return (cPtr == 0) ? null : (INTERFACE)new IMPL(cPtr, true);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue