package com.amd.aparapi.internal.kernel; import java.lang.reflect.Field; import java.nio.ByteBuffer; import java.util.Arrays; import com.amd.aparapi.Kernel; import com.amd.aparapi.internal.jni.KernelArgJNI; import com.amd.aparapi.internal.model.ClassModel; /** * Each field (or captured field in the case of an anonymous inner class) referenced by any bytecode reachable from the users Kernel.run(), will * need to be represented as a <code>KernelArg</code>. * * @see com.amd.aparapi.Kernel#execute(int _globalSize) * * @author gfrost * */ public class KernelArg extends KernelArgJNI{ /** * The byte array for obj conversion passed to opencl */ private byte[] objArrayBuffer; /** * The ByteBuffer fronting the byte array */ private ByteBuffer objArrayByteBuffer; /** * ClassModel of the array elements (not used on JNI side) * */ private ClassModel objArrayElementModel; /** * Only set for AparapiBuffer objs, */ private Object primitiveBuf; /** * Size of this primitive */ private int primitiveSize; /** * Default constructor */ protected KernelArg() { } /** * @return the objArrayBuffer */ protected byte[] getObjArrayBuffer() { return objArrayBuffer; } /** * @param objArrayBuffer the objArrayBuffer to set */ protected void setObjArrayBuffer(byte[] objArrayBuffer) { this.objArrayBuffer = objArrayBuffer; } /** * @return the objArrayByteBuffer */ protected ByteBuffer getObjArrayByteBuffer() { return objArrayByteBuffer; } /** * @param objArrayByteBuffer the objArrayByteBuffer to set */ protected void setObjArrayByteBuffer(ByteBuffer objArrayByteBuffer) { this.objArrayByteBuffer = objArrayByteBuffer; } /** * @return the objArrayElementModel */ protected ClassModel getObjArrayElementModel() { return objArrayElementModel; } /** * @param objArrayElementModel the objArrayElementModel to set */ protected void setObjArrayElementModel(ClassModel objArrayElementModel) { this.objArrayElementModel = objArrayElementModel; } /** * @return the primitiveBuf */ protected Object getPrimitiveBuf() { return primitiveBuf; } /** * @param primitiveBuf the primitiveBuf to set */ protected void setPrimitiveBuf(Object primitiveBuf) { this.primitiveBuf = primitiveBuf; } /** * @return the primitiveSize */ protected int getPrimitiveSize() { return primitiveSize; } /** * @param primitiveSize the primitiveSize to set */ protected void setPrimitiveSize(int primitiveSize) { this.primitiveSize = primitiveSize; } /** * @return the type */ protected int getType() { return type; } /** * @param type the type to set */ protected void setType(int type) { this.type = type; } /** * @return the name */ protected String getName() { return name; } /** * @param name the name to set */ protected void setName(String name) { this.name = name; } /** * @return the javaArray */ protected Object getJavaArray() { return javaArray; } /** * @param javaArray the javaArray to set */ protected void setJavaArray(Object javaArray) { this.javaArray = javaArray; } /** * @return the sizeInBytes */ protected int getSizeInBytes() { return sizeInBytes; } /** * @param sizeInBytes the sizeInBytes to set */ protected void setSizeInBytes(int sizeInBytes) { this.sizeInBytes = sizeInBytes; } /** * @return the numElements */ protected int getNumElements() { return numElements; } /** * @param numElements the numElements to set */ protected void setNumElements(int numElements) { this.numElements = numElements; } /** * @return the array */ protected Object getArray() { return array; } /** * @param array the array to set */ protected void setArray(Object array) { this.array = array; } /** * @return the field */ protected Field getField() { return field; } /** * @param field the field to set */ protected void setField(Field field) { this.field = field; } /** * @return the buffer */ protected Object getJavaBuffer() { return javaBuffer; } /** * @param buffer the buffer to set */ protected void setJavaBuffer(Object buffer) { this.javaBuffer = buffer; } /** * @return the number of dimensions to buffer */ protected int getNumDims() { return numDims; } /** * @param numDims the number of dimensions for the buffer */ protected void setNumDims(int numDims) { this.numDims = numDims; } /** * @return the dimensions for the buffer */ protected int[] getDims() { return dims; } /** * @param dims the dimsensions for the buffer */ protected void setDims(int[] dims) { this.dims = dims; } @Override public String toString() { return "KernelArg{" + "objArrayBuffer=" + Arrays.toString(objArrayBuffer) + ", objArrayByteBuffer=" + objArrayByteBuffer + ", objArrayElementModel=" + objArrayElementModel + ", primitiveBuf=" + primitiveBuf + ", primitiveSize=" + primitiveSize + '}'; } }