1 package com.ochafik.lang.jnaerator.runtime; 2 3 import com.sun.jna.ptr.ByReference; 4 5 public class NativeSizeByReference extends ByReference { 6 public NativeSizeByReference() { 7 this(new NativeSize(0)); 8 } 9 10 public NativeSizeByReference(NativeSize value) { 11 super(NativeSize.SIZE); 12 setValue(value); 13 } 14 15 public void setValue(NativeSize value) { 16 if (NativeSize.SIZE == 4) 17 getPointer().setInt(0, value.intValue()); 18 else if (NativeSize.SIZE == 8) 19 getPointer().setLong(0, value.longValue()); 20 else 21 throw new RuntimeException("GCCLong has to be either 4 or 8 bytes."); 22 } 23 24 public NativeSize getValue() { 25 if (NativeSize.SIZE == 4) 26 return new NativeSize(getPointer().getInt(0)); 27 else if (NativeSize.SIZE == 8) 28 return new NativeSize(getPointer().getLong(0)); 29 else 30 throw new RuntimeException("GCCLong has to be either 4 or 8 bytes."); 31 } 32 }