com.nativelibs4java.opencl
Class CLBuffer<T>

java.lang.Object
  extended by com.nativelibs4java.opencl.CLMem
      extended by com.nativelibs4java.opencl.CLBuffer<T>

public class CLBuffer<T>
extends CLMem

OpenCL Memory Buffer Object.
A buffer object stores a one-dimensional collection of elements.
Elements of a buffer object can be a scalar data type (such as an int, float), vector data type, or a user-defined structure.

Author:
Olivier Chafik
See Also:
CLContext

Nested Class Summary
 
Nested classes/interfaces inherited from class com.nativelibs4java.opencl.CLMem
CLMem.DestructorCallback, CLMem.Flags, CLMem.GLObjectInfo, CLMem.GLObjectType, CLMem.MapFlags, CLMem.ObjectType, CLMem.Usage
 
Field Summary
protected  T entity
           
 
Fields inherited from class com.nativelibs4java.opencl.CLMem
byteCount, context, infos
 
Method Summary
<T> CLBuffer<T>
as(Class<T> newTargetType)
           
 CLBuffer<Byte> asCLByteBuffer()
           
 CLBuffer<Character> asCLCharBuffer()
           
 CLBuffer<Double> asCLDoubleBuffer()
           
 CLBuffer<Float> asCLFloatBuffer()
           
 CLBuffer<Integer> asCLIntBuffer()
           
 CLBuffer<Long> asCLLongBuffer()
           
 CLBuffer<Short> asCLShortBuffer()
           
protected  void checkBounds(long offset, long length)
           
 CLEvent copyTo(CLQueue queue, CLMem destination, CLEvent... eventsToWaitFor)
          enqueues a command to copy a buffer object identified by src_buffer to another buffer object identified by destination.
 CLEvent copyTo(CLQueue queue, long srcOffset, long length, CLMem destination, long destOffset, CLEvent... eventsToWaitFor)
          enqueues a command to copy a buffer object identified by src_buffer to another buffer object identified by destination.
 CLBuffer<T> createSubBuffer(CLMem.Usage usage, long offset, long length)
          Can be used to create a new buffer object (referred to as a sub-buffer object) from an existing buffer object.
 CLBuffer<T> emptyClone(CLMem.Usage usage)
           
 boolean equals(Object obj)
          Underyling implementation pointer-based equality test
protected  void finalize()
           
 Class<T> getElementClass()
           
 long getElementCount()
           
 int getElementSize()
           
static
<E extends org.bridj.TypedPointer,A extends com.nativelibs4java.opencl.CLAbstractEntity<E>>
org.bridj.Pointer<E>
getEntities(A[] objects, org.bridj.Pointer<E> out)
           
 int hashCode()
          Underyling implementation pointer-based hashCode computation
 org.bridj.Pointer<T> map(CLQueue queue, CLMem.MapFlags flags, CLEvent... eventsToWaitFor)
           
protected  com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> map(CLQueue queue, CLMem.MapFlags flags, long offset, long length, boolean blocking, CLEvent... eventsToWaitFor)
           
 org.bridj.Pointer<T> map(CLQueue queue, CLMem.MapFlags flags, long offset, long length, CLEvent... eventsToWaitFor)
           
 com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> mapLater(CLQueue queue, CLMem.MapFlags flags, CLEvent... eventsToWaitFor)
           
 com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> mapLater(CLQueue queue, CLMem.MapFlags flags, long offset, long length, CLEvent... eventsToWaitFor)
           
 CLEvent read(CLQueue queue, Buffer out, boolean blocking, CLEvent... eventsToWaitFor)
          Deprecated. use read(CLQueue, Pointer, boolean, CLEvent[]) instead
 org.bridj.Pointer<T> read(CLQueue queue, CLEvent... eventsToWaitFor)
           
 CLEvent read(CLQueue queue, long offset, long length, Buffer out, boolean blocking, CLEvent... eventsToWaitFor)
          Deprecated. use read(CLQueue, long, long, Pointer, boolean, CLEvent[]) instead
 org.bridj.Pointer<T> read(CLQueue queue, long offset, long length, CLEvent... eventsToWaitFor)
           
 CLEvent read(CLQueue queue, long offset, long length, org.bridj.Pointer<T> out, boolean blocking, CLEvent... eventsToWaitFor)
           
 CLEvent read(CLQueue queue, org.bridj.Pointer<T> out, boolean blocking, CLEvent... eventsToWaitFor)
           
 void release()
          Manual release of the OpenCL resources represented by this object.
 CLEvent unmap(CLQueue queue, org.bridj.Pointer<T> buffer, CLEvent... eventsToWaitFor)
           
 CLEvent write(CLQueue queue, Buffer in, boolean blocking, CLEvent... eventsToWaitFor)
          Deprecated. use write(CLQueue, Pointer, boolean, CLEvent[]) instead
 CLEvent write(CLQueue queue, long offset, long length, Buffer in, boolean blocking, CLEvent... eventsToWaitFor)
          Deprecated. use write(CLQueue, long, long, Pointer, boolean, CLEvent[]) instead
 CLEvent write(CLQueue queue, long offset, long length, org.bridj.Pointer<T> in, boolean blocking, CLEvent... eventsToWaitFor)
           
 CLEvent write(CLQueue queue, org.bridj.Pointer<T> in, boolean blocking, CLEvent... eventsToWaitFor)
           
 CLEvent writeBytes(CLQueue queue, long offset, long length, ByteBuffer in, boolean blocking, CLEvent... eventsToWaitFor)
           
 CLEvent writeBytes(CLQueue queue, long offset, long length, org.bridj.Pointer<?> in, boolean blocking, CLEvent... eventsToWaitFor)
           
 
Methods inherited from class com.nativelibs4java.opencl.CLMem
acquireGLObject, clear, getByteCount, getContext, getGLObjectInfo, releaseGLObject, setDestructorCallback
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entity

protected volatile T extends org.bridj.TypedPointer entity
Method Detail

getElementClass

public Class<T> getElementClass()

getElementSize

public int getElementSize()

getElementCount

public long getElementCount()

map

public org.bridj.Pointer<T> map(CLQueue queue,
                                CLMem.MapFlags flags,
                                CLEvent... eventsToWaitFor)
                         throws CLException.MapFailure
Throws:
CLException.MapFailure

map

public org.bridj.Pointer<T> map(CLQueue queue,
                                CLMem.MapFlags flags,
                                long offset,
                                long length,
                                CLEvent... eventsToWaitFor)
                         throws CLException.MapFailure
Throws:
CLException.MapFailure

mapLater

public com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> mapLater(CLQueue queue,
                                                                            CLMem.MapFlags flags,
                                                                            CLEvent... eventsToWaitFor)
                                                                     throws CLException.MapFailure
Throws:
CLException.MapFailure

mapLater

public com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> mapLater(CLQueue queue,
                                                                            CLMem.MapFlags flags,
                                                                            long offset,
                                                                            long length,
                                                                            CLEvent... eventsToWaitFor)
                                                                     throws CLException.MapFailure
Throws:
CLException.MapFailure

read

public org.bridj.Pointer<T> read(CLQueue queue,
                                 CLEvent... eventsToWaitFor)

read

public org.bridj.Pointer<T> read(CLQueue queue,
                                 long offset,
                                 long length,
                                 CLEvent... eventsToWaitFor)

checkBounds

protected void checkBounds(long offset,
                           long length)

createSubBuffer

public CLBuffer<T> createSubBuffer(CLMem.Usage usage,
                                   long offset,
                                   long length)
Can be used to create a new buffer object (referred to as a sub-buffer object) from an existing buffer object.

Parameters:
usage - is used to specify allocation and usage information about the image memory object being created and is described in table 5.3 of the OpenCL spec.
offset -
length -
Returns:
sub-buffer that is a "window" of this buffer starting at the provided offset, with the provided length
Since:
OpenCL 1.1

copyTo

public CLEvent copyTo(CLQueue queue,
                      CLMem destination,
                      CLEvent... eventsToWaitFor)
enqueues a command to copy a buffer object identified by src_buffer to another buffer object identified by destination.

Parameters:
destination -
eventsToWaitFor -
Returns:
event which indicates the copy operation has completed

copyTo

public CLEvent copyTo(CLQueue queue,
                      long srcOffset,
                      long length,
                      CLMem destination,
                      long destOffset,
                      CLEvent... eventsToWaitFor)
enqueues a command to copy a buffer object identified by src_buffer to another buffer object identified by destination.

Parameters:
queue -
srcOffset -
length -
destination -
destOffset -
eventsToWaitFor -
Returns:
event which indicates the copy operation has completed

map

protected com.nativelibs4java.util.Pair<org.bridj.Pointer<T>,CLEvent> map(CLQueue queue,
                                                                          CLMem.MapFlags flags,
                                                                          long offset,
                                                                          long length,
                                                                          boolean blocking,
                                                                          CLEvent... eventsToWaitFor)

unmap

public CLEvent unmap(CLQueue queue,
                     org.bridj.Pointer<T> buffer,
                     CLEvent... eventsToWaitFor)

read

@Deprecated
public CLEvent read(CLQueue queue,
                               Buffer out,
                               boolean blocking,
                               CLEvent... eventsToWaitFor)
Deprecated. use read(CLQueue, Pointer, boolean, CLEvent[]) instead


read

public CLEvent read(CLQueue queue,
                    org.bridj.Pointer<T> out,
                    boolean blocking,
                    CLEvent... eventsToWaitFor)

read

@Deprecated
public CLEvent read(CLQueue queue,
                               long offset,
                               long length,
                               Buffer out,
                               boolean blocking,
                               CLEvent... eventsToWaitFor)
Deprecated. use read(CLQueue, long, long, Pointer, boolean, CLEvent[]) instead


read

public CLEvent read(CLQueue queue,
                    long offset,
                    long length,
                    org.bridj.Pointer<T> out,
                    boolean blocking,
                    CLEvent... eventsToWaitFor)

write

@Deprecated
public CLEvent write(CLQueue queue,
                                Buffer in,
                                boolean blocking,
                                CLEvent... eventsToWaitFor)
Deprecated. use write(CLQueue, Pointer, boolean, CLEvent[]) instead


write

public CLEvent write(CLQueue queue,
                     org.bridj.Pointer<T> in,
                     boolean blocking,
                     CLEvent... eventsToWaitFor)

write

@Deprecated
public CLEvent write(CLQueue queue,
                                long offset,
                                long length,
                                Buffer in,
                                boolean blocking,
                                CLEvent... eventsToWaitFor)
Deprecated. use write(CLQueue, long, long, Pointer, boolean, CLEvent[]) instead


write

public CLEvent write(CLQueue queue,
                     long offset,
                     long length,
                     org.bridj.Pointer<T> in,
                     boolean blocking,
                     CLEvent... eventsToWaitFor)

writeBytes

public CLEvent writeBytes(CLQueue queue,
                          long offset,
                          long length,
                          ByteBuffer in,
                          boolean blocking,
                          CLEvent... eventsToWaitFor)

writeBytes

public CLEvent writeBytes(CLQueue queue,
                          long offset,
                          long length,
                          org.bridj.Pointer<?> in,
                          boolean blocking,
                          CLEvent... eventsToWaitFor)

emptyClone

public CLBuffer<T> emptyClone(CLMem.Usage usage)

asCLIntBuffer

public CLBuffer<Integer> asCLIntBuffer()

asCLLongBuffer

public CLBuffer<Long> asCLLongBuffer()

asCLShortBuffer

public CLBuffer<Short> asCLShortBuffer()

asCLByteBuffer

public CLBuffer<Byte> asCLByteBuffer()

asCLCharBuffer

public CLBuffer<Character> asCLCharBuffer()

asCLFloatBuffer

public CLBuffer<Float> asCLFloatBuffer()

asCLDoubleBuffer

public CLBuffer<Double> asCLDoubleBuffer()

as

public <T> CLBuffer<T> as(Class<T> newTargetType)

release

public void release()
Manual release of the OpenCL resources represented by this object.
Note that resources are automatically released by the garbage collector, so in general there's no need to call this method.
In an environment with fast allocation/deallocation of large objects, it might be safer to call release() manually, though.
Note that release() does not necessarily free the object immediately : OpenCL maintains a reference count for all its objects, and an object released on the Java side might still be pointed to by running kernels or queued operations.


getEntities

public static <E extends org.bridj.TypedPointer,A extends com.nativelibs4java.opencl.CLAbstractEntity<E>> org.bridj.Pointer<E> getEntities(A[] objects,
                                                                                                                                           org.bridj.Pointer<E> out)

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

hashCode

public int hashCode()
Underyling implementation pointer-based hashCode computation

Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Underyling implementation pointer-based equality test

Overrides:
equals in class Object


Copyright © 2009-2012. All Rights Reserved.