[jcifs] Re: Jarapac Stubs not Compatible with DEC/RPC Calling
Conventions
Eric Glass
eric.glass at gmail.com
Tue Jul 13 09:30:52 GMT 2004
> I don't think Jarapac can use stubs like this:
>
> public interface ExampleInterface extends Remote {
>
> public long testOperation(int arg1, String arg2) throws
> RemoteException;
>
> }
>
> We need to support pointers to primative types. Consider:
>
> int NetServerEnumAll([in] wchar_t *server_unc,
> [in,out] int *level,
> [in,out,switch_is(level)] NetShareCtr *ctr,
> [in] unsigned long max_buffer,
> [out] unsigned long *totalentries,
> [in,out] unsigned long *resume_handle);
>
> Mike
>
My original plan for handling this sort of thing was through the
Pointer subclasses (to represent pointers) and Holder classes (to box
primitives). The general idea was to represent a boxed primitive
something like:
Element boxed = new UnsignedLongHolder();
and a pointer to that primitive like:
Pointer p = new FullPointer(boxed);
The interface would just represent this as an UnsignedLongHolder:
public void foo(UnsignedLongHolder arg1) throws RemoteException;
The pointer wrapping would be done within the generated client stub,
so all the caller would need to do is create the holder:
UnsignedLongHolder arg1 = new UnsignedLongHolder(5);
foo(arg1);
System.out.println(arg1.getUnsignedLong());
That was the idea, anyways; RPC pointers were a bit fuzzy to me, so
I'm not sure if this approach is feasible or not.
Eric
More information about the jcifs
mailing list