RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
ByteStream Class Referencefinal

#include "io/ByteStream.h"

Inheritance diagram for ByteStream:
[legend]
Collaboration diagram for ByteStream:
[legend]

Public Types

using size_type = uint32_t

Public Member Functions

 ByteStream ()=default
 ByteStream (DataBuffer buffer)
ByteStream getSubStream (size_type offset, size_type size_) const
ByteStream getSubStream (size_type offset) const
size_type check (size_type bytes) const
size_type check (size_type nmemb, size_type size_) const
size_type getPosition () const
void setPosition (size_type newPos)
size_type RAWSPEED_READONLY getRemainSize () const
const uint8_t * peekData (size_type count) const
const uint8_t * getData (size_type count)
Buffer peekBuffer (size_type size_) const
Buffer getBuffer (size_type size_)
Buffer peekRemainingBuffer () const
ByteStream peekStream (size_type size_) const
ByteStream peekStream (size_type nmemb, size_type size_) const
ByteStream getStream (size_type size_)
ByteStream getStream (size_type nmemb, size_type size_)
void skipBytes (size_type nbytes)
void skipBytes (size_type nmemb, size_type size_)
bool hasPatternAt (std::string_view pattern, size_type relPos) const
bool hasPrefix (std::string_view prefix) const
bool skipPrefix (std::string_view prefix)
template<typename T>
peek (size_type i=0) const
template<typename T>
get ()
template<typename T, int N>
std::array< T, N > getArray ()
template<typename T>
std::vector< T > getVector (int nElt)
uint8_t peekByte (size_type i=0) const
uint8_t getByte ()
uint16_t peekU16 () const
uint32_t peekU32 (size_type i=0) const
uint16_t getU16 ()
int32_t getI32 ()
uint32_t getU32 ()
float getFloat ()
std::string_view peekString () const
std::string_view getString ()
template<typename T>
get (size_type offset, size_type index=0) const
template<typename T>
get (bool inNativeByteOrder, size_type offset, size_type index=0) const
Endianness getByteOrder () const
Endianness setByteOrder (Endianness endianness_)
Array1DRef< const uint8_t > getAsArray1DRef () const
 operator Array1DRef< const uint8_t > () const
Buffer getSubView (size_type offset, size_type size_) const
Buffer getSubView (size_type offset) const
uint8_t operator[] (size_type offset) const
const uint8_t * begin () const
const uint8_t * end () const
size_type RAWSPEED_READONLY getSize () const
bool isValid (size_type offset, size_type count=1) const

Protected Attributes

const uint8_t * data = nullptr

Private Attributes

size_type pos
Endianness endianness = Endianness::little
size_type size = 0

Detailed Description

Definition at line 43 of file ByteStream.h.

Member Typedef Documentation

◆ size_type

Definition at line 49 of file Buffer.h.

Constructor & Destructor Documentation

◆ ByteStream() [1/2]

◆ ByteStream() [2/2]

rawspeed::ByteStream::ByteStream ( DataBuffer buffer)
inlineexplicit

Definition at line 50 of file ByteStream.h.

Member Function Documentation

◆ begin()

const uint8_t * rawspeed::Buffer::begin ( ) const
inlinenodiscardinherited

◆ check() [1/2]

size_type rawspeed::ByteStream::check ( size_type bytes) const
inlinenodiscard

Definition at line 63 of file ByteStream.h.

◆ check() [2/2]

size_type rawspeed::ByteStream::check ( size_type nmemb,
size_type size_ ) const
inlinenodiscard

Definition at line 72 of file ByteStream.h.

◆ end()

const uint8_t * rawspeed::Buffer::end ( ) const
inlinenodiscardinherited

Definition at line 102 of file Buffer.h.

References Array1DRef< T >::end(), and getAsArray1DRef().

Referenced by rawspeed::TiffEntry::getString(), rawspeed::operator<(), rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock(), rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock(), rawspeed::ByteStream::peekString(), and rawspeed::HuffmanCode< CodeTag >::setNCodesPerLength().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get() [1/3]

template<typename T>
T rawspeed::ByteStream::get ( )
inline

Definition at line 159 of file ByteStream.h.

◆ get() [2/3]

template<typename T>
T rawspeed::Buffer::get ( bool inNativeByteOrder,
size_type offset,
size_type index = 0 ) const
inlinenodiscardinherited

Definition at line 107 of file Buffer.h.

References Buffer(), rawspeed::buf, rawspeed::getByteSwapped(), getSubView(), and rawspeed::T().

Referenced by rawspeed::DataBuffer::get().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get() [3/3]

template<typename T>
T rawspeed::DataBuffer::get ( size_type offset,
size_type index = 0 ) const
inlinenodiscardinherited

Definition at line 147 of file Buffer.h.

References assert(), rawspeed::big, endianness, rawspeed::Buffer::get(), rawspeed::getHostEndianness(), rawspeed::little, rawspeed::T(), and rawspeed::unknown.

Referenced by rawspeed::IiqDecoder::isAppropriateDecoder(), and rawspeed::ByteStream::peek().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getArray()

template<typename T, int N>
std::array< T, N > rawspeed::ByteStream::getArray ( )
inline

Definition at line 165 of file ByteStream.h.

◆ getAsArray1DRef()

◆ getBuffer()

Definition at line 103 of file ByteStream.h.

◆ getByte()

uint8_t rawspeed::ByteStream::getByte ( )
inline

Definition at line 186 of file ByteStream.h.

◆ getByteOrder()

Endianness rawspeed::DataBuffer::getByteOrder ( ) const
inlinenodiscardinherited

Definition at line 154 of file Buffer.h.

References endianness.

Referenced by rawspeed::RafDecoder::decodeRawInternal(), rawspeed::ByteStream::getSubStream(), rawspeed::ByteStream::getSubStream(), and rawspeed::ArwDecoder::GetWB().

Here is the caller graph for this function:

◆ getData()

const uint8_t * rawspeed::ByteStream::getData ( size_type count)
inline

Definition at line 95 of file ByteStream.h.

◆ getFloat()

Definition at line 197 of file ByteStream.h.

◆ getI32()

Definition at line 195 of file ByteStream.h.

◆ getPosition()

size_type rawspeed::ByteStream::getPosition ( ) const
inlinenodiscard

Definition at line 78 of file ByteStream.h.

◆ getRemainSize()

size_type RAWSPEED_READONLY rawspeed::ByteStream::getRemainSize ( ) const
inlinenodiscard

Definition at line 87 of file ByteStream.h.

◆ getSize()

◆ getStream() [1/2]

Definition at line 124 of file ByteStream.h.

◆ getStream() [2/2]

Definition at line 119 of file ByteStream.h.

◆ getString()

std::string_view rawspeed::ByteStream::getString ( )
inlinenodiscard

Definition at line 210 of file ByteStream.h.

◆ getSubStream() [1/2]

ByteStream rawspeed::ByteStream::getSubStream ( size_type offset) const
inlinenodiscard

Definition at line 59 of file ByteStream.h.

◆ getSubStream() [2/2]

ByteStream rawspeed::ByteStream::getSubStream ( size_type offset,
size_type size_ ) const
inlinenodiscard

Definition at line 54 of file ByteStream.h.

◆ getSubView() [1/2]

Buffer rawspeed::Buffer::getSubView ( size_type offset) const
inlinenodiscardinherited

Definition at line 85 of file Buffer.h.

References Buffer(), getSize(), getSubView(), isValid(), and ThrowIOE.

Here is the call graph for this function:

◆ getSubView() [2/2]

Buffer rawspeed::Buffer::getSubView ( size_type offset,
size_type size_ ) const
inlinenodiscardinherited

◆ getU16()

Definition at line 194 of file ByteStream.h.

◆ getU32()

Definition at line 196 of file ByteStream.h.

◆ getVector()

template<typename T>
std::vector< T > rawspeed::ByteStream::getVector ( int nElt)
inline

Definition at line 173 of file ByteStream.h.

◆ hasPatternAt()

bool rawspeed::ByteStream::hasPatternAt ( std::string_view pattern,
size_type relPos ) const
inlinenodiscard

Definition at line 135 of file ByteStream.h.

◆ hasPrefix()

bool rawspeed::ByteStream::hasPrefix ( std::string_view prefix) const
inlinenodiscard

Definition at line 145 of file ByteStream.h.

◆ isValid()

bool rawspeed::Buffer::isValid ( size_type offset,
size_type count = 1 ) const
inlinenodiscardinherited

Definition at line 117 of file Buffer.h.

References getSize().

Referenced by rawspeed::ByteStream::check(), getSubView(), getSubView(), and rawspeed::ByteStream::hasPatternAt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator Array1DRef< const uint8_t >()

rawspeed::Buffer::operator Array1DRef< const uint8_t > ( ) const
inlineexplicitinherited

Definition at line 74 of file Buffer.h.

References getAsArray1DRef().

Here is the call graph for this function:

◆ operator[]()

uint8_t rawspeed::Buffer::operator[] ( size_type offset) const
inlineinherited

Definition at line 94 of file Buffer.h.

References getAsArray1DRef().

Here is the call graph for this function:

◆ peek()

template<typename T>
T rawspeed::ByteStream::peek ( size_type i = 0) const
inlinenodiscard

Definition at line 156 of file ByteStream.h.

◆ peekBuffer()

Buffer rawspeed::ByteStream::peekBuffer ( size_type size_) const
inlinenodiscard

Definition at line 100 of file ByteStream.h.

◆ peekByte()

uint8_t rawspeed::ByteStream::peekByte ( size_type i = 0) const
inlinenodiscard

Definition at line 183 of file ByteStream.h.

◆ peekData()

const uint8_t * rawspeed::ByteStream::peekData ( size_type count) const
inlinenodiscard

Definition at line 92 of file ByteStream.h.

◆ peekRemainingBuffer()

Definition at line 108 of file ByteStream.h.

◆ peekStream() [1/2]

ByteStream rawspeed::ByteStream::peekStream ( size_type nmemb,
size_type size_ ) const
inlinenodiscard

Definition at line 114 of file ByteStream.h.

◆ peekStream() [2/2]

ByteStream rawspeed::ByteStream::peekStream ( size_type size_) const
inlinenodiscard

Definition at line 111 of file ByteStream.h.

◆ peekString()

std::string_view rawspeed::ByteStream::peekString ( ) const
inlinenodiscard

Definition at line 199 of file ByteStream.h.

◆ peekU16()

uint16_t rawspeed::ByteStream::peekU16 ( ) const
inlinenodiscard

Definition at line 188 of file ByteStream.h.

◆ peekU32()

uint32_t rawspeed::ByteStream::peekU32 ( size_type i = 0) const
inlinenodiscard

Definition at line 190 of file ByteStream.h.

◆ setByteOrder()

Endianness rawspeed::DataBuffer::setByteOrder ( Endianness endianness_)
inlineinherited

Definition at line 156 of file Buffer.h.

References endianness.

Referenced by rawspeed::DngOpcodes::DngOpcodes(), rawspeed::ArwDecoder::DecodeARW2(), rawspeed::TiffParser::parse(), rawspeed::ArwDecoder::ParseA100WB(), rawspeed::TiffIFD::parseMakerNote(), and rawspeed::NefDecoder::parseWhiteBalance().

Here is the caller graph for this function:

◆ setPosition()

Definition at line 83 of file ByteStream.h.

◆ skipBytes() [1/2]

Definition at line 130 of file ByteStream.h.

◆ skipBytes() [2/2]

void rawspeed::ByteStream::skipBytes ( size_type nmemb,
size_type size_ )
inline

Definition at line 131 of file ByteStream.h.

◆ skipPrefix()

bool rawspeed::ByteStream::skipPrefix ( std::string_view prefix)
inline

Definition at line 149 of file ByteStream.h.

Member Data Documentation

◆ data

const uint8_t* rawspeed::Buffer::data = nullptr
protectedinherited

Definition at line 52 of file Buffer.h.

Referenced by Buffer(), and getAsArray1DRef().

◆ endianness

Endianness rawspeed::DataBuffer::endianness = Endianness::little
privateinherited

Definition at line 136 of file Buffer.h.

Referenced by DataBuffer(), get(), getByteOrder(), and setByteOrder().

◆ pos

Initial value:
=
0

Definition at line 44 of file ByteStream.h.

◆ size

size_type rawspeed::Buffer::size = 0
privateinherited

Definition at line 55 of file Buffer.h.

Referenced by Buffer(), getAsArray1DRef(), and getSize().


The documentation for this class was generated from the following file: