1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/System/BitConverter.h
Tom Lint 52ef14a94b Transition from SVN to Git
Added implicit conversion to base types to all primary types (UInt32 et
al)
Added implicit conversion from System::String to const char*
2013-05-05 18:18:41 +02:00

51 lines
1.9 KiB
C++

/********************************************************
* BitConverter.h *
* *
* XFX BitConverter definition file *
* Copyright © XFX Team. All Rights Reserved *
********************************************************/
#ifndef _SYSTEM_BITCONVERTER_
#define _SYSTEM_BITCONVERTER_
#include "Types.h"
namespace System
{
// Converts base data types to an array of bytes, and an array of bytes to base data types.
class BitConverter
{
private:
static byte* GetBytes(byte *ptr, int count) __attribute__((nonnull(1)));
static bool AmIBigOrLittleEndian();
static bool SwappedWordsInDouble();
BitConverter(); //! private constructor to prevent instantiation
public:
static const bool IsLittleEndian;
static byte* GetBytes(bool value);
static byte* GetBytes(char value);
static byte* GetBytes(double value);
static byte* GetBytes(short value);
static byte* GetBytes(int value);
static byte* GetBytes(long long value);
static byte* GetBytes(float value);
static byte* GetBytes(ushort value);
static byte* GetBytes(uint value);
static byte* GetBytes(ulong value);
static bool ToBoolean(byte value[], int startIndex) __attribute__((nonnull(1)));
static char ToChar(byte value[], int startIndex) __attribute__((nonnull(1)));
static double ToDouble(byte value[], int startIndex) __attribute__((nonnull(1)));
static short ToInt16(byte value[], int startIndex) __attribute__((nonnull(1)));
static int ToInt32(byte value[], int startIndex) __attribute__((nonnull(1)));
static long long ToInt64(byte value[], int startIndex) __attribute__((nonnull(1)));
static float ToSingle(byte value[], int startIndex) __attribute__((nonnull(1)));
static ushort ToUInt16(byte value[], int startIndex) __attribute__((nonnull(1)));
static uint ToUInt32(byte value[], int startIndex) __attribute__((nonnull(1)));
static ulong ToUInt64(byte value[], int startIndex) __attribute__((nonnull(1)));
};
}
#endif //_SYSTEM_BITCONVERTER_