mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			82 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
GNU Classpath Native State API - Version 0.99.1
 | 
						|
Written by Paul Fisher (rao@gnu.org)
 | 
						|
 | 
						|
For all function calls, if an error occurs, such that `NULL' or a
 | 
						|
negative value is returned, it's very possible that an exception has
 | 
						|
been thrown from within the function.  The exception is not cleared,
 | 
						|
and you are responsible for dealing with the thrown exception.
 | 
						|
 | 
						|
High level API:
 | 
						|
 | 
						|
For using the highlevel API, in all cases, OBJ must contain a `final
 | 
						|
int' field called "native_state", which has been previously set to the
 | 
						|
value of java.lang.System.identityHashCode(OBJ).
 | 
						|
 | 
						|
Function: struct state_table * init_state_table (JNIEnv *ENV, 
 | 
						|
                                                 jclass CLAZZ)
 | 
						|
 | 
						|
  Creates a state table of default size.  Returns `NULL' on error.
 | 
						|
 | 
						|
Function: struct state_table * init_state_table_with_size (JNIEnv *ENV,
 | 
						|
                                                           jclass CLAZZ,
 | 
						|
                                                           jint SIZE)
 | 
						|
 | 
						|
  Creates a state table, with a tablesize of SIZE.  SIZE should
 | 
						|
  always be prime.  Returns `NULL' on error.
 | 
						|
 | 
						|
Function: jint set_state (JNIEnv *ENV, jobject OBJ, 
 | 
						|
                          struct state_table *TABLE, void *STATE)
 | 
						|
 | 
						|
  Associates STATE with OBJ, in TABLE.  Returns 0 on success, and a
 | 
						|
  negative value on failure.  STATE must not be `NULL'.  set_state is
 | 
						|
  reentrant, and calls to set_state/get_state/remove_state_slot may be
 | 
						|
  made at the same time.
 | 
						|
        
 | 
						|
Function: void * get_state (JNIEnv *ENV, jobject OBJ,
 | 
						|
                            struct state_table *TABLE)
 | 
						|
 | 
						|
  Retrieves the state associated with OBJ, in TABLE.  Returns `NULL'
 | 
						|
  if no value is associated with OBJ, or if a failure occurs.
 | 
						|
  get_state is reentrant, and calls to
 | 
						|
  get_state/set_state/remove_state_slot may be made at the same time.
 | 
						|
 | 
						|
Function: void * remove_state_slot (JNIEnv *ENV, jobject OBJ,
 | 
						|
                                    struct state_table *TABLE)
 | 
						|
 | 
						|
  Removes the internal slot associated with OBJ, in TABLE.  Returns a
 | 
						|
  pointer to the C state if a state was associated with OBJ,
 | 
						|
  otherwise, `NULL' is returned.  After `remove_state' is called,
 | 
						|
  `get_state' passing OBJ, will result in `NULL' being returned.  This
 | 
						|
  function is generally called in the `finalize' method of a class.
 | 
						|
  remove_state_slot is reentrant, and calls to
 | 
						|
  get_state/set_state/remove_state_slot may be made at the same time.
 | 
						|
 | 
						|
Low level API:
 | 
						|
 | 
						|
Function: void set_state_oid (JNIEnv *ENV, jobject LOCK, 
 | 
						|
                              struct state_table *TABLE, 
 | 
						|
                              jint OBJECT_ID, void *STATE)
 | 
						|
 | 
						|
  Associates STATE with OBJECT_ID, in TABLE.  STATE must not be
 | 
						|
  `NULL'.  On entering, a lock is obtained on LOCK.  On exiting, the
 | 
						|
  lock is released.
 | 
						|
 | 
						|
Function: void * get_state_oid (JNIEnv *ENV, jobject LOCK, 
 | 
						|
                                struct state_table *TABLE, 
 | 
						|
                                jint OBJECT_ID)
 | 
						|
 | 
						|
  Retrieves the state associated with OBJECT_ID, in TABLE.  Returns
 | 
						|
  `NULL' if no value is associated with OBJECT_ID.  On entering, a
 | 
						|
  lock is obtained on LOCK.  On exiting, the lock is released.
 | 
						|
 | 
						|
Function: void * remove_state_oid (JNIEnv *ENV, jobject LOCK, 
 | 
						|
                                   struct state_table *TABLE, 
 | 
						|
                                   jint OBJECT_ID)
 | 
						|
 | 
						|
  Removes the value associated with OBJECT_ID, in TABLE.  Returns a
 | 
						|
  pointer to the C state if a state was associated with OBJECT_ID,
 | 
						|
  otherwise, `NULL' is returned.  After `remove_state_oid' is called,
 | 
						|
  `get_state_oid' passing OBJECT_ID, will result in `NULL' being
 | 
						|
  returned.  On entering, a lock is obtained on LOCK.  On exiting, the
 | 
						|
  lock is released.
 |