Storing C++ data in an instance field using CNI?
Stanley Brown
stanley.brown@zimmer.com
Sat May 29 17:57:00 GMT 2004
David Daney wrote:
> Stanley Brown wrote:
>>> I played a little bit with RawData. Soon my Java code became very
>> GCJ dependent. I eventually switched back to JNI (which GCJ handles
>> just fine) storing pointers in long instance variables and NIO
>> buffers. To be fair this was mainly because I ran into complications
>> on the Win32 port where (1) I could not mix C++ and GCJ and (2)
>> creating instances of Calendar overloaded the memory.
>>>> Could someone please explain the advantage of using RawData over the
>> methods I employed?
>>> CNI has lower overhead than JNI.
>> If you use RawData, your code will continue to work when ported to
> architectures with 128bit pointers.
>> David Daney.
>Bothner wrote some interesting stuff some time back on Linux Journal
about CNI. After reading it I was "thats the way to go" for
java-2-native programming. After much JNI and CNI coding Im thinking
both will leave anyone longing for something like how .NET handles it.
Sure, being able to use Java classes like C++ classes while in C++ code
is nice but what would be really cool is to instantiate and control C++
classes from within Java like they were Java classes. I know: thats
crazy talk!
A 128b pointer is a bit fantastic to me. 64-bit is just starting to
become a reality for most people. Java probably needs a native integral
type. Saying an int is always 32 bits no matter what the platform is an
advantage and disadvantage at the same time. Perhaps "long long" for
128 bits? :)
More information about the Java
mailing list