001/* 002 * To change this template, choose Tools | Templates 003 * and open the template in the editor. 004 */ 005package com.nativelibs4java.opencl.proxy; 006 007import org.bridj.NativeObject; 008import org.bridj.Pointer; 009import static org.bridj.Pointer.*; 010 011public class PointerUtils { 012 013 protected static void setSizeT(long peer, long value) { 014 pointerToAddress(peer).setSizeT(value); 015 } 016 017 protected static void setSizeTAtIndex(long peer, int index, long value) { 018 pointerToAddress(peer).setSizeTAtIndex(index, value); 019 } 020 021 protected static void setPointerAtIndex(long peer, int index, Pointer<?> value) { 022 pointerToAddress(peer).setPointerAtIndex(index, value); 023 } 024 025 protected static void setPointerAtIndex(long peer, int index, NativeObject value) { 026 pointerToAddress(peer).setSizeTAtIndex(index, Pointer.getPeer(Pointer.getPointer(value))); 027 // pointerToAddress(peer).setSizeTAtIndex(index, Pointer.getPeer(Pointer.pointerTo(value))); 028 } 029 030 protected static long getSizeT(long peer) { 031 return pointerToAddress(peer).getSizeT(); 032 } 033 034 protected static <T> Pointer<T> getPointer(long peer, Class<T> targetClass) { 035 return pointerToAddress(peer).getPointer(targetClass); 036 } 037 038 // public static <N extends NativeObject> Pointer<N> getPointer(N instance) { 039 // return pointerTo(instance); 040 // } 041 042 protected static void setInt(long peer, int value) { 043 pointerToAddress(peer).setInt(value); 044 } 045 046 protected static int getInt(long peer) { 047 return pointerToAddress(peer).getInt(); 048 } 049}