org.jruby.ext.ffi
Interface MemoryIO

All Known Implementing Classes:
JNAMemoryIO

public interface MemoryIO

Abstracted memory operations.

This abstracts read/write operations to either a native memory area, or a java ByteBuffer.


Method Summary
 void clear()
          Clears the contents of the memory area
 void get(long offset, byte[] dst, int off, int len)
          Reads an array of bytes from the memory area at the specified offset.
 void get(long offset, double[] dst, int off, int len)
          Reads an array of doubles from the memory area at the specified offset.
 void get(long offset, float[] dst, int off, int len)
          Reads an array of floats from the memory area at the specified offset.
 void get(long offset, int[] dst, int off, int len)
          Reads an array of ints from the memory area at the specified offset.
 void get(long offset, long[] dst, int off, int len)
          Reads an array of longs from the memory area at the specified offset.
 void get(long offset, short[] dst, int off, int len)
          Reads an array of shorts from the memory area at the specified offset.
 byte getByte(long offset)
          Reads an 8 bit integer value from the memory area.
 double getDouble(long offset)
          Reads a double value from the memory area.
 float getFloat(long offset)
          Reads a float value from the memory area.
 int getInt(long offset)
          Reads a 32 bit integer value from the memory area.
 long getLong(long offset)
          Reads a 64 bit integer value from the memory area.
 MemoryIO getMemoryIO(long offset)
          Reads a pointer value at the specified offset within the memory area, and wraps it in an abstract memory accessor.
 long getNativeLong(long offset)
          Reads a native long integer value from the memory area.
 short getShort(long offset)
          Reads a 16 bit integer value from the memory area.
 int indexOf(long offset, byte value)
          Gets the first index within the memory area of a particular 8 bit value.
 int indexOf(long offset, byte value, int maxlen)
          Gets the first index within the memory area of a particular 8 bit value.
 boolean isNull()
          Checks if the memory area is NULL.
 void put(long offset, byte[] src, int off, int len)
          Writes an array of bytes to the memory area at the specified offset.
 void put(long offset, double[] src, int off, int len)
          Writes an array of doubles to the memory area at the specified offset.
 void put(long offset, float[] src, int off, int len)
          Writes an array of floats to the memory area at the specified offset.
 void put(long offset, int[] src, int off, int len)
          Writes an array of ints to the memory area at the specified offset.
 void put(long offset, long[] src, int off, int len)
          Writes an array of longs to the memory area at the specified offset.
 void put(long offset, short[] src, int off, int len)
          Writes an array of shorts to the memory area at the specified offset.
 void putByte(long offset, byte value)
          Writes an 8 bit integer value to the memory area at the specified offset.
 void putDouble(long offset, double value)
          Writes a 64 bit float value to the memory area at the specified offset.
 void putFloat(long offset, float value)
          Writes a 32 bit float value to the memory area at the specified offset.
 void putInt(long offset, int value)
          Writes a 32 bit integer value to the memory area at the specified offset.
 void putLong(long offset, long value)
          Writes a 64 bit integer value to the memory area at the specified offset.
 void putMemoryIO(long offset, MemoryIO value)
          Writes a pointer value to the memory area at the specified offset.
 void putNativeLong(long offset, long value)
          Writes a native long integer value to the memory area at the specified offset.
 void putShort(long offset, short value)
          Writes a 16 bit integer value to the memory area at the specified offset.
 void setMemory(long offset, long size, byte value)
          Sets the contents of the memory area to the value.
 

Method Detail

isNull

boolean isNull()
Checks if the memory area is NULL.

Returns:
true if the memory area is invalid.

getByte

byte getByte(long offset)
Reads an 8 bit integer value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The 8 bit integer value read from offset

getShort

short getShort(long offset)
Reads a 16 bit integer value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The 16 bit integer value read from offset

getInt

int getInt(long offset)
Reads a 32 bit integer value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The 32 bit integer value read from offset

getLong

long getLong(long offset)
Reads a 64 bit integer value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The 64 bit integer value read from offset

getNativeLong

long getNativeLong(long offset)
Reads a native long integer value from the memory area.

A native long is 32bits on either ILP32 or LLP64 architectures, and 64 bits on an LP64 architecture.

This means that it will always read a 32bit value on Windows, but on Unix systems such as MacOS or Linux, it will read a 32bit value on 32bit systems, and a 64bit value on 64bit systems.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The native long value read from offset

getFloat

float getFloat(long offset)
Reads a float value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The float value read from offset

getDouble

double getDouble(long offset)
Reads a double value from the memory area.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
The double value read from offset

getMemoryIO

MemoryIO getMemoryIO(long offset)
Reads a pointer value at the specified offset within the memory area, and wraps it in an abstract memory accessor.

Parameters:
offset - The offset within the memory area to read the value.
Returns:
A MemoryIO accessor that can be used to access the memory pointed to by the address.

putByte

void putByte(long offset,
             byte value)
Writes an 8 bit integer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 8 bit integer value to write to the memory location.

putShort

void putShort(long offset,
              short value)
Writes a 16 bit integer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 16 bit integer value to write to the memory location.

putInt

void putInt(long offset,
            int value)
Writes a 32 bit integer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 32 bit integer value to write to the memory location.

putLong

void putLong(long offset,
             long value)
Writes a 64 bit integer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 64 bit integer value to write to the memory location.

putNativeLong

void putNativeLong(long offset,
                   long value)
Writes a native long integer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The native long integer value to write to the memory location.

putFloat

void putFloat(long offset,
              float value)
Writes a 32 bit float value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 32 bit float value to write to the memory location.

putDouble

void putDouble(long offset,
               double value)
Writes a 64 bit float value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The 64 bit float value to write to the memory location.

putMemoryIO

void putMemoryIO(long offset,
                 MemoryIO value)
Writes a pointer value to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to write the value.
value - The pointer value to write to the memory location.

get

void get(long offset,
         byte[] dst,
         int off,
         int len)
Reads an array of bytes from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the bytes.
dst - The output byte array to place the data.
off - The offset within the byte array to start copying.
len - The length of data to read.

put

void put(long offset,
         byte[] src,
         int off,
         int len)
Writes an array of bytes to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the bytes.
src - The byte array to write to the memory area.
off - The offset within the byte array to start copying.
len - The length of data to write.

get

void get(long offset,
         short[] dst,
         int off,
         int len)
Reads an array of shorts from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the shorts.
dst - The output array to place the data in.
off - The offset within the array to start copying.
len - The number of shorts to read.

put

void put(long offset,
         short[] src,
         int off,
         int len)
Writes an array of shorts to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the shorts.
src - The array to write to the memory area.
off - The offset within the array to start copying.
len - The number of shorts to write.

get

void get(long offset,
         int[] dst,
         int off,
         int len)
Reads an array of ints from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the ints.
dst - The output array to place the data in.
off - The offset within the array to start copying.
len - The number of ints to read.

put

void put(long offset,
         int[] src,
         int off,
         int len)
Writes an array of ints to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the ints.
src - The array to write to the memory area.
off - The offset within the array to start copying.
len - The number of ints to write.

get

void get(long offset,
         long[] dst,
         int off,
         int len)
Reads an array of longs from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the longs.
dst - The output array to place the data in.
off - The offset within the array to start copying.
len - The number of longs to read.

put

void put(long offset,
         long[] src,
         int off,
         int len)
Writes an array of longs to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the longs.
src - The array to write to the memory area.
off - The offset within the array to start copying.
len - The number of longs to write.

get

void get(long offset,
         float[] dst,
         int off,
         int len)
Reads an array of floats from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the floats.
dst - The output array to place the data in.
off - The offset within the array to start copying.
len - The number of floats to read.

put

void put(long offset,
         float[] src,
         int off,
         int len)
Writes an array of floats to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the floats.
src - The array to write to the memory area.
off - The offset within the array to start copying.
len - The number of floats to write.

get

void get(long offset,
         double[] dst,
         int off,
         int len)
Reads an array of doubles from the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to read the doubles.
dst - The output array to place the data in.
off - The offset within the array to start copying.
len - The number of doubles to read.

put

void put(long offset,
         double[] src,
         int off,
         int len)
Writes an array of doubles to the memory area at the specified offset.

Parameters:
offset - The offset within the memory area to start writing the doubles.
src - The array to write to the memory area.
off - The offset within the array to start copying.
len - The number of doubles to write.

indexOf

int indexOf(long offset,
            byte value)
Gets the first index within the memory area of a particular 8 bit value.

Parameters:
offset - The offset within the memory area to start searching.
value - The value to search for.
Returns:
The index of the value, relative to offset.

indexOf

int indexOf(long offset,
            byte value,
            int maxlen)
Gets the first index within the memory area of a particular 8 bit value.

Parameters:
offset - The offset within the memory area to start searching.
value - The value to search for.
Returns:
The index of the value, relative to offset.

setMemory

void setMemory(long offset,
               long size,
               byte value)
Sets the contents of the memory area to the value.

Parameters:
offset - The offset within the memory area to start writing.
size - The number of bytes to set to the value.
value - The value to set each byte to.

clear

void clear()
Clears the contents of the memory area



Copyright © 2002-2007 JRuby Team. All Rights Reserved.