org.mozilla.jss.util
Class NativeProxy
java.lang.Object
org.mozilla.jss.util.NativeProxy
public abstract class NativeProxy
extends java.lang.Object
NativeProxy, a superclass for Java classes that mirror C data structures.
It contains some code to help make sure that native memory is getting
freed properly.
NativeProxy(byte[] pointer) - Create a NativeProxy from a byte array representing a C pointer.
|
NativeProxy
public NativeProxy(byte[] pointer)
Create a NativeProxy from a byte array representing a C pointer.
This is the only way to create a NativeProxy, it should be called
from the constructor of your subclass.
pointer
- A byte array, created with JSS_ptrToByteArray, that
contains a pointer pointing to a native data structure. The
NativeProxy instance acts as a proxy for that native data structure.
assertRegistryEmpty
public static void assertRegistryEmpty()
Assert that the Registry is empty. Only works in debug mode; in
ship mode, it is a no-op. If the Registry is not empty when this
is called, an assertion (org.mozilla.jss.util.AssertionException)
is thrown.
equals
public boolean equals(Object obj)
Deep comparison operator.
- true if
obj
has the same underlying native
pointer. false if the obj
is null or has
a different underlying native pointer.
finalize
protected void finalize()
throws Throwable
Finalize this NativeProxy by releasing its native resources.
The finalizer calls releaseNativeResources() so you don't have to.
This finalizer should be called from the finalize() method of all
subclasses:
class MyProxy extends NativeProxy {
[...]
protected void finalize() throws Throwable {
// do any object-specific finalization other than
// releasing native resources
[...]
super.finalize();
}
}
getRegistryIndex
public long getRegistryIndex()
- The index of this NativeProxy in the NativeProxy registry.
getRegistryIndices
public static Enumeration getRegistryIndices()
- A list of the indices in the registry. Each element is a Long.
releaseNativeResources
protected abstract void releaseNativeResources()
Release the native resources used by this proxy.
Subclasses of NativeProxy must define this method to clean up
data structures in C code that are referenced by this proxy.
releaseNativeResources() will usually be implemented as a native method.
You don't call this method; NativeProxy.finalize() calls it for you.
You must declare a finalize() method which calls super.finalize().