From: William S F. <ws...@fu...> - 2009-09-14 19:51:33
|
The typemaps in typemaps.i are for primitive types, but I assume controller is a non-primitive type. The SWIGTYPE*& typemaps in java.swg should ensure that passing controller*& should just work. If it doesn't please post a complete standalone example. William Chip Christian wrote: > Something like this? > > %typemap(in) (controller*&) { $1 = (controller**) &$input; } > %typemap(out) (controller*&) { $result = $1; } > > On Thu, Jul 23, 2009 at 12:01 PM, Chip > Christian<chi...@gm...> wrote: >> int myController(controller*& OUTPUT); >> >> Called like so: >> >> public static void main(String argv[]) { >> controller c = null; >> int r = cluster.theCluster().myController(c); >> System.out.println(r); >> System.out.println(c.getUUID()); >> } >> >> 0 >> Exception in thread "main" java.lang.NullPointerException >> at allshow.main(allshow.java:15) >> >> >> >> >> >> >> >> >> On Thu, Jul 23, 2009 at 11:11 AM, Chip >> Christian<chi...@gm...> wrote: >>> RTFM, Chip. >>> >>> OK, I added >>> %include "typemaps.i" >>> >>> and named the parameters OUTPUT in my .h files. Do I have to do >>> anything special to initialize c? >>> >>> On Thu, Jul 23, 2009 at 10:35 AM, Chip >>> Christian<chi...@gm...> wrote: >>>> I have a collection of classes in C++ with private constructors. >>>> >>>> Can I do this, or do I need to make changes to my model? >>>> >>>> There are 5 ways to get the various objects: >>>> >>>> - a singleton >>>> no problems >>>> >>>> - a static method which takes an object*& in the parameter list >>>> - a static method which takes a vector<object>*& in the parameter list >>>> - a method which takes an other_object*& in the parameter list >>>> - a method which takes a vector<other_object>*& in the parameter list >>>> >>>> I've tried a few things: >>>> >>>> controller c; >>>> cluster.theCluster.myController(c); >>>> >>>> Compile error: >>>> The local variable c may not have been initialized >>>> >>>> controller c = new controller(); >>>> cluster.theCluster.myController(c); >>>> >>>> Compile error: >>>> The constructor controller() is undefined >>>> >>>> controller c[] = new controller[1]; >>>> cluster.theCluster.myController(c[0]); >>>> >>>> Runtime error when I try to dereference c[0]: >>>> Exception in thread "main" java.lang.NullPointerException >>>> > > ------------------------------------------------------------------------------ > _______________________________________________ > Swig-user mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-user > |