vs
Class Cmem

java.lang.Object
  extended byvs.Cmem

public class Cmem
extends java.lang.Object

Provides a mechanism to allocate memory using the C malloc routine. And a way to copy data from and to java arrays and built-in types to the allocated memory. Used when the address of a memory block is needed, for instance when building item lists, and when calling asynchronous routines, when the needs of the java garbage colector and the async routines mean that java allocated memory cannot be used.

The methods for accessing storage check all ranges and do not allow altering storage outside the allocated region. This protects against buffer overrun errors.


Constructor Summary
Cmem(int size)
          constructor, size in bytes provided.
 
Method Summary
 int bytecopyin(byte b)
          copy a byte into the C memory
 byte bytecopyout()
          get the first byte in the C memory
 int copyin(byte[] b)
          copy data to the C memory from a byte array
 int copyin(int[] b)
          copy data to the C memory from an int array
 int copyin(long[] b)
          copy data to the C memory from a long array
 int copyin(short[] b)
          copy data to the C memory from a short array
 int copyin(java.lang.String s)
          Copy data to virtual memory region from String object.
 int copyin(VmsStruct s)
          Copy data to virtual memory region from VmsStruct object.
 java.lang.String copyout()
          Copy contents of memory to a String object.
 int copyout(byte[] b)
          copy data from the C memory to a byte array
 java.lang.String copyout(int len)
          Copy portion of memory contents to a String object.
 int copyout(int[] b)
          copy data from the C memory to an int array
 int copyout(long[] b)
          copy data from the C memory to a long array
 int copyout(short[] b)
          copy data from the C memory to an int array
 int copyout(VmsStruct s)
          Copy contents of memory to a VmsStruct object.
 void finalize()
           
 void free()
          deallocate the C memory.
 int getPeer()
          return a pointer to the C memory
 int intcopyin(int i)
          copy an int into the C memory
 int intcopyout()
          get the first int in the C memory
 int length()
          Return the size (in bytes) of the allocated region.
 int longcopyin(long b)
          copy a long into the C memory
 long longcopyout()
          get the first long in the C memory
 int shortcopyin(short s)
          copy a short into the C memory
 short shortcopyout()
          get the first short in the C memory
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Cmem

public Cmem(int size)
constructor, size in bytes provided.

Method Detail

free

public void free()
deallocate the C memory. Not strictly needed since the finalize routine does it. This routine can safely be called more than once.


finalize

public void finalize()

getPeer

public int getPeer()
return a pointer to the C memory


length

public int length()
Return the size (in bytes) of the allocated region.

Returns:
size of virtual memory region (in bytes).

copyin

public int copyin(byte[] b)
copy data to the C memory from a byte array


copyin

public int copyin(VmsStruct s)
Copy data to virtual memory region from VmsStruct object.

This method copies the underlying byte[] array into the memory region allocated by this Cmem object.

Parameters:
s - VmsStruct object to copy into memory.
Returns:
total number of bytes copied to the memory.

copyin

public int copyin(java.lang.String s)
Copy data to virtual memory region from String object.

This method accepts a String object that is converted to a byte[] array. The array is then written to the alloccated memory region.

Parameters:
s - String object to copy to memory.
Returns:
total number of bytes copied to the memory.

copyout

public int copyout(byte[] b)
copy data from the C memory to a byte array


copyout

public int copyout(VmsStruct s)
Copy contents of memory to a VmsStruct object.

The underlying byte[] array of the VmsStruct object is updated with the contents of the memory region.

Parameters:
s - VmsStruct object to receive a copy of the memory region contents.
Returns:
number of bytes copied from the memory region.

copyout

public java.lang.String copyout()
Copy contents of memory to a String object.

A new String object is constructed from the contents of the memory region.

Returns:
String object containg a copy of the memory region contents.

copyout

public java.lang.String copyout(int len)
Copy portion of memory contents to a String object.

A new String object is constructed from the contents of the memory region. No more than len bytes are stored in the String object.

Parameters:
len - maximum number of bytes to include in the String object.
Returns:
String object containg a copy of the memory region contents.

copyin

public int copyin(short[] b)
copy data to the C memory from a short array


copyout

public int copyout(short[] b)
copy data from the C memory to an int array


copyin

public int copyin(int[] b)
copy data to the C memory from an int array


copyout

public int copyout(int[] b)
copy data from the C memory to an int array


copyin

public int copyin(long[] b)
copy data to the C memory from a long array


copyout

public int copyout(long[] b)
copy data from the C memory to a long array


longcopyout

public long longcopyout()
get the first long in the C memory


intcopyout

public int intcopyout()
get the first int in the C memory


shortcopyout

public short shortcopyout()
get the first short in the C memory


bytecopyout

public byte bytecopyout()
get the first byte in the C memory


longcopyin

public int longcopyin(long b)
copy a long into the C memory


intcopyin

public int intcopyin(int i)
copy an int into the C memory


shortcopyin

public int shortcopyin(short s)
copy a short into the C memory


bytecopyin

public int bytecopyin(byte b)
copy a byte into the C memory



char)0xa9, (char)0xa9, (char)0xa9, (char)0xa9, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xa8, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xab, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xaa, (char)0xa