1#ifndef JGADGET_BINARY_H
2#define JGADGET_BINARY_H
17 return arg0 != 0 && (arg0 & arg0 - 1) == 0;
22 return (arg0 + uAlign - 1) & ~(uAlign - 1);
63 static T
parse(
const void* data) {
return (T)*(T*)data; }
76template <
class Parser>
78 static typename Parser::ParseType
parse(
const void* data) {
return Parser::parse(data); }
80 static typename Parser::ParseType
parse(
const void* data,
s32 advanceNum) {
81 return Parser::parse(
advance(data, advanceNum));
84 static const void*
advance(
const void* data,
s32 advanceNum) {
85 return (
char*)data + (advanceNum *
sizeof(
typename Parser::ParseType));
89template<
class Parser,
int size>
92 std::random_access_iterator_tag,
93 typename Parser::ParseType,
95 typename Parser::ParseType*,
96 typename Parser::ParseType&
102 mBegin =
reinterpret_cast<const char*
>(begin);
142 return a.mBegin == b.mBegin;
172 return a.mBegin == b.mBegin;
static u8 const unused[12]
Definition d_a_cstatue.cpp:16
unsigned int size
Definition __os.h:106
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
static const double T[]
Definition k_tan.c:106
bool isPower2(unsigned int arg0)
Definition binary.h:16
u32 align_roundUp(unsigned int arg0, unsigned int uAlign)
Definition binary.h:20
const void * parseVariableUInt_16_32_following(const void *pu16, u32 *pu32First, u32 *pu32Second, TEBit *tebit)
Definition binary.cpp:14
Definition linklist.cpp:6
u32 value
Definition binary.h:11
TParseData_aligned(const void *pContent)
Definition binary.h:36
void setRaw(const void *p)
Definition binary.h:37
TParseData(const void *pContent)
Definition binary.h:26
void setRaw(const void *p)
Definition binary.h:29
const void * getRaw() const
Definition binary.h:28
const void * raw
Definition binary.h:31
static T parse(const void *data)
Definition binary.h:73
T ParseType
Definition binary.h:158
static T parse(const void *data)
Definition binary.h:159
TParseValue_misaligned_< T > InnerParseValueClass
Definition binary.h:164
static T parse(const void *data)
Definition binary.h:63
T ParseType
Definition binary.h:62
TParseValue_raw_< T > InnerParseValueClass
Definition binary.h:68
static const void * advance(const void *data, s32 advanceNum)
Definition binary.h:84
static Parser::ParseType parse(const void *data, s32 advanceNum)
Definition binary.h:80
static Parser::ParseType parse(const void *data)
Definition binary.h:78
TValueIterator_misaligned(const void *begin)
Definition binary.h:169
friend bool operator!=(TValueIterator< TParseValue_misaligned< T >, sizeof(T)> a, TValueIterator< TParseValue_misaligned< T >, sizeof(T)> b)
Definition binary.h:175
friend bool operator==(TValueIterator< TParseValue_misaligned< T >, sizeof(T)> a, TValueIterator< TParseValue_misaligned< T >, sizeof(T)> b)
Definition binary.h:171
friend bool operator==(TValueIterator< TParseValue_raw< T >, sizeof(T)> a, TValueIterator< TParseValue_raw< T >, sizeof(T)> b)
Definition binary.h:141
TValueIterator_raw(const void *begin)
Definition binary.h:139
friend bool operator!=(TValueIterator< TParseValue_raw< T >, sizeof(T)> a, TValueIterator< TParseValue_raw< T >, sizeof(T)> b)
Definition binary.h:145
TValueIterator(const void *begin)
Definition binary.h:101
const void * get() const
Definition binary.h:107
Parser::ParseType ValueType
Definition binary.h:99
const TValueIterator operator++(int)
Definition binary.h:118
TValueIterator & operator+=(s32 n)
Definition binary.h:124
char const * mBegin
Definition binary.h:134
TValueIterator & operator++()
Definition binary.h:113
Parser::ParseType operator*() const
Definition binary.h:109
TValueIterator & operator--()
Definition binary.h:129