1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/System/BitConverter.h
Halofreak1990 e7a47c8ed9 Revamped the List class so that it can (properly) handle pointers as well
Added 'ValueTypes' Single and Double
Added some components in the new System::Net namespace
Added the Console class, which can be used to output text to the screen
Updated a bunch of structs to include the IComparable and IEquatable interfaces, and inheritance from Object to allow better interoperability between container classes and other types
Replaced all exception handling code with a report to stdout.txt - this will, I hope, eventually be reversed, but as of yet, there is no support for exceptions.

BEWARE! Even though all libraries correctly compile, you cannot use any class/structure that inherits from a template class, because stupid G++ wants to include exception handling for each template.
2011-11-07 01:29:50 +00:00

46 lines
1.6 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(Int64 value);
static byte *GetBytes(float value);
static byte *GetBytes(UInt16 value);
static byte *GetBytes(UInt32 value);
static byte *GetBytes(UInt64 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 Int16 ToInt16(byte value[], int startIndex) __attribute__((nonnull(1)));
static Int32 ToInt32(byte value[], int startIndex) __attribute__((nonnull(1)));
};
}
#endif //_SYSTEM_BITCONVERTER_