001 package com.ochafik.lang.jnaerator.runtime; 002 003 import com.sun.jna.IntegerType; 004 import com.sun.jna.Native; 005 import com.sun.jna.Platform; 006 007 /** 008 * 'size_t' C type (32 bits on 32 bits platforms, 64 bits on 64 bits platforms). 009 * Can be also used to model the 'long' C type for libraries known to be compiled with GCC or LLVM even on Windows. 010 * (NativeLong on Windows is only okay with MSVC++ libraries, as 'long' on Windows 64 bits will be 32 bits with MSVC++ and 64 bits with GCC/mingw) 011 * @author ochafik 012 */ 013 public class NativeSize extends IntegerType { 014 /** Size of a size_t integer, in bytes. */ 015 public static final int SIZE = Native.SIZE_T_SIZE;//Platform.is64Bit() ? 8 : 4; 016 017 /** Create a zero-valued Size. */ 018 public NativeSize() { 019 this(0); 020 } 021 022 /** Create a Size with the given value. */ 023 public NativeSize(long value) { 024 super(SIZE, value); 025 } 026 }