#include <datastream.h>
Definition at line 51 of file datastream.h.
◆ ReadStream() [1/2]
dart::ReadStream::ReadStream |
( |
const uint8_t * |
buffer, |
|
|
intptr_t |
size |
|
) |
| |
|
inline |
Definition at line 53 of file datastream.h.
static const uint8_t buffer[]
◆ ReadStream() [2/2]
dart::ReadStream::ReadStream |
( |
const uint8_t * |
buffer, |
|
|
intptr_t |
size, |
|
|
intptr_t |
pos |
|
) |
| |
|
inline |
Definition at line 57 of file datastream.h.
60 }
ReadStream(const uint8_t *buffer, intptr_t size)
void SetPosition(intptr_t value)
◆ AddressOfCurrentPosition()
const uint8_t * dart::ReadStream::AddressOfCurrentPosition |
( |
| ) |
const |
|
inline |
◆ Advance()
void dart::ReadStream::Advance |
( |
intptr_t |
value | ) |
|
|
inline |
◆ Align()
void dart::ReadStream::Align |
( |
intptr_t |
alignment, |
|
|
intptr_t |
offset = 0 |
|
) |
| |
|
inline |
Definition at line 133 of file datastream.h.
133 {
134 intptr_t position_before =
Position();
135 intptr_t position_after =
137 Advance(position_after - position_before);
138 }
intptr_t Position() const
void Advance(intptr_t value)
static constexpr T RoundUp(T x, uintptr_t alignment, uintptr_t offset=0)
◆ PendingBytes()
intptr_t dart::ReadStream::PendingBytes |
( |
| ) |
const |
|
inline |
Definition at line 147 of file datastream.h.
147 {
149 return (end_ - current_);
150 }
◆ Position()
intptr_t dart::ReadStream::Position |
( |
| ) |
const |
|
inline |
Definition at line 127 of file datastream.h.
127{ return current_ - buffer_; }
◆ Read()
T dart::ReadStream::Read |
( |
| ) |
|
|
inline |
Definition at line 153 of file datastream.h.
153 {
155 }
static constexpr uint8_t kEndByteMarker
◆ ReadBytes()
void dart::ReadStream::ReadBytes |
( |
void * |
addr, |
|
|
intptr_t |
len |
|
) |
| |
|
inline |
Definition at line 90 of file datastream.h.
90 {
91 ASSERT((end_ - current_) >= len);
92 if (len != 0) {
93 memmove(addr, current_, len);
94 }
96 }
◆ ReadLEB128() [1/2]
template<typename
T = uintptr_t>
Definition at line 173 of file datastream.h.
173 {
178 do {
185 return r;
186 }
constexpr intptr_t kBitsPerByte
static constexpr uint8_t kDataBitsPerByte
static constexpr uint8_t kDataByteMask
static constexpr uint8_t kMoreDataMask
◆ ReadLEB128() [2/2]
Definition at line 189 of file datastream.h.
189 {
190 return bit_cast<T>(
ReadLEB128<
typename std::make_unsigned<T>::type>());
191 }
C::only_if_unsigned< T, T > ReadLEB128()
◆ ReadRefId()
intptr_t dart::ReadStream::ReadRefId |
( |
| ) |
|
|
inline |
Definition at line 103 of file datastream.h.
103 {
104 const int8_t* cursor = reinterpret_cast<const int8_t*>(current_);
106 intptr_t byte;
107
108#define STAGE \
109 byte = *cursor++; \
110 result = byte + (result << 7); \
111 if (byte < 0) goto done;
116#undef STAGE
118
120 current_ = reinterpret_cast<const uint8_t*>(cursor);
121
122
123
125 }
static void done(const char *config, const char *src, const char *srcOptions, const char *name)
◆ ReadSLEB128() [1/2]
Definition at line 194 of file datastream.h.
194 {
199 do {
206
207
208
209
212
213 sign_bits = ~((
static_cast<T>(1) <<
s) - 1);
214 }
215 return r | sign_bits;
216 }
static constexpr uint8_t kSignMask
◆ ReadSLEB128() [2/2]
template<typename
T = intptr_t>
Definition at line 219 of file datastream.h.
219 {
220 return bit_cast<T>(
ReadSLEB128<
typename std::make_unsigned<T>::type>());
221 }
C::only_if_unsigned< T, T > ReadSLEB128()
◆ ReadUnsigned()
template<typename
T = intptr_t>
T dart::ReadStream::ReadUnsigned |
( |
| ) |
|
|
inline |
Definition at line 99 of file datastream.h.
99 {
101 }
static constexpr uint8_t kEndUnsignedByteMarker
◆ ReadWordWith32BitReads()
uword dart::ReadStream::ReadWordWith32BitReads |
( |
| ) |
|
|
inline |
Definition at line 157 of file datastream.h.
157 {
159
161 for (intptr_t j = 0; j < kNumRead32PerWord; j++) {
162 const auto partial_value = Raw<kInt32Size, uint32_t>::Read(this);
164 }
166 }
constexpr intptr_t kBitsPerWord
constexpr intptr_t kBitsPerInt32
◆ SetPosition()
void dart::ReadStream::SetPosition |
( |
intptr_t |
value | ) |
|
|
inline |
◆ Deserializer
The documentation for this class was generated from the following file: