From: Chip C. <chi...@gm...> - 2009-07-23 22:07:04
|
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 >>> >> > |