|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
org.mozilla.jss.util
Class NativeProxy
java.lang.Object org.mozilla.jss.util.NativeProxy
- Direct Known Subclasses:
- TokenProxy
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.
Constructor Summary | |
---|---|
NativeProxy(byte[] pointer)
Create a NativeProxy from a byte array representing a C pointer. |
Method Summary | |
---|---|
static void |
assertRegistryEmpty()
Assert that the Registry is empty. |
boolean |
equals(java.lang.Object obj)
Deep comparison operator. |
protected void |
finalize()
Finalize this NativeProxy by releasing its native resources. |
long |
getRegistryIndex()
|
static java.util.Enumeration |
getRegistryIndices()
|
protected abstract void |
releaseNativeResources()
Release the native resources used by this proxy. |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
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.
- Parameters:
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.
Method Detail |
---|
equals
public boolean equals(java.lang.Object obj)
- Deep comparison operator.
- Overrides:
equals
in classjava.lang.Object
- Returns:
- true if
obj
has the same underlying native pointer. false if theobj
is null or has a different underlying native pointer.
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().
finalize
protected void finalize() throws java.lang.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();
}
}
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
getRegistryIndices
public static java.util.Enumeration getRegistryIndices()
- Returns:
- A list of the indices in the registry. Each element is a Long.
- See Also:
getRegistryIndex()
getRegistryIndex
public long getRegistryIndex()
- Returns:
- The index of this NativeProxy in the NativeProxy registry.
- See Also:
getRegistryIndices()
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.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |