EHS
Loading...
Searching...
No Matches
Data.h
Go to the documentation of this file.
1#pragma once
2
3#include "EHS.h"
4#include "Serializer.h"
5
6namespace ehs
7{
8 class EHS_LIB_IO Data
9 {
10 public:
11 template<typename T>
12 static void SwapEndianness(T* value)
13 {
14 Byte tmp = 0;
15 for (UInt_64 i = 0; i < sizeof(T) / 2; ++i)
16 {
17 tmp = ((Byte*)value)[i];
18 ((Byte*)value)[i] = ((Byte*)value)[sizeof(T) - i - 1];
19 ((Byte*)value)[sizeof(T) - i - 1] = tmp;
20 }
21 }
22
23 template<typename T>
24 static Array<T> SwapEndianness(const T* const array, const UInt_64 size)
25 {
26 Array<T> result(size);
27
28 for (UInt_64 i = size; i; --i)
29 result[size - i] = array[i - 1];
30
31 return result;
32 }
33
34 template<typename N>
36 {
37 Serializer<N> result(data.Size());
38
39 for (N i = 0; i < data.Size(); ++i)
40 result[i] = data[data.Size() - i - 1];
41
42 return result;
43 }
44 };
45}
Definition Array.h:16
Definition Data.h:9
static Array< T > SwapEndianness(const T *const array, const UInt_64 size)
Definition Data.h:24
static void SwapEndianness(T *value)
Definition Data.h:12
static Serializer< N > SwapEndianness(const Serializer< N > &data)
Definition Data.h:35
Definition Serializer.h:25
N Size() const
Definition Serializer.h:1228
Definition Anchor.h:6
unsigned char Byte
Definition Types.h:39