/* * This file is protected by Copyright. Please refer to the COPYRIGHT file * distributed with this source distribution. * * This file is part of REDHAWK bulkioInterfaces. * * REDHAWK bulkioInterfaces is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * REDHAWK bulkioInterfaces is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package bulkio; public class SizeOf <T> { public <T extends Object> int sizeof() { return 0; } } class FloatSize extends SizeOf< Float > { public FloatSize() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 4; } } class DoubleSize extends SizeOf< Double > { public DoubleSize() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 8; } } class Int8Size extends SizeOf< Byte > { public Int8Size() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 1; } } class CharSize extends SizeOf< Character > { public CharSize() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 1; } } class UInt8Size extends Int8Size { public UInt8Size() {}; } class OctetSize extends Int8Size { public OctetSize() {}; } class Int16Size extends SizeOf< Short > { public Int16Size() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 2; } } class UInt16Size extends Int16Size { public UInt16Size() { }; } class Int32Size extends SizeOf< Integer > { public Int32Size() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 4; } } class UInt32Size extends Int32Size { public UInt32Size() { }; } class Int64Size extends SizeOf< Long > { public Int64Size() {}; public < T > int sizeof() { return bytes(); }; public static int bytes() { return 8; } } class UInt64Size extends Int64Size { public UInt64Size() { }; }