libopenraw
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
OpenRaw::Internals::RawContainer Class Reference

#include <rawcontainer.hpp>

Inheritance diagram for OpenRaw::Internals::RawContainer:
OpenRaw::Internals::CIFFContainer OpenRaw::Internals::IfdFileContainer OpenRaw::Internals::JfifContainer OpenRaw::Internals::RafContainer OpenRaw::Internals::RafMetaContainer OpenRaw::Internals::MRWContainer OpenRaw::Internals::OrfContainer OpenRaw::Internals::Rw2Container

Public Types

enum  EndianType { ENDIAN_NULL = 0, ENDIAN_BIG, ENDIAN_LITTLE }
 

Public Member Functions

 RawContainer (const IO::Stream::Ptr &_file, off_t offset)
 
virtual ~RawContainer ()
 
const IO::Stream::Ptr & file ()
 
EndianType endian () const
 
off_t offset () const
 
bool skip (off_t offset)
 
Option< int8_t > readInt8 (const IO::Stream::Ptr &f)
 
Option< uint8_t > readUInt8 (const IO::Stream::Ptr &f)
 
Option< int16_t > readInt16 (const IO::Stream::Ptr &f)
 
Option< int32_t > readInt32 (const IO::Stream::Ptr &f)
 
Option< uint16_t > readUInt16 (const IO::Stream::Ptr &f)
 
size_t readUInt16Array (const IO::Stream::Ptr &f, std::vector< uint16_t > &v, size_t count)
 
Option< uint32_t > readUInt32 (const IO::Stream::Ptr &f)
 
size_t fetchData (void *buf, off_t offset, size_t buf_size)
 
off_t size () const
 

Protected Member Functions

 RawContainer (const RawContainer &)=delete
 
RawContaineroperator= (const RawContainer &)=delete
 
void setEndian (EndianType _endian)
 

Protected Attributes

IO::Stream::Ptr m_file
 
off_t m_offset
 
EndianType m_endian
 

Detailed Description

Generic interface for the RAW file container

Definition at line 41 of file rawcontainer.hpp.

Member Enumeration Documentation

◆ EndianType

define the endian of the container

Enumerator
ENDIAN_BIG 

no endian found: means invalid file

ENDIAN_LITTLE 

big endian found little endian found

Definition at line 44 of file rawcontainer.hpp.

Constructor & Destructor Documentation

◆ RawContainer()

OpenRaw::Internals::RawContainer::RawContainer ( const IO::Stream::Ptr &  _file,
off_t  offset 
)
Parameters
filethe stream to read from
offsetthe offset since starting the beginning of the file for the container

Definition at line 37 of file rawcontainer.cpp.

References m_file.

◆ ~RawContainer()

OpenRaw::Internals::RawContainer::~RawContainer ( )
virtual

destructor

Definition at line 47 of file rawcontainer.cpp.

References m_file.

Member Function Documentation

◆ fetchData()

size_t OpenRaw::Internals::RawContainer::fetchData ( void *  buf,
off_t  offset,
size_t  buf_size 
)

Fetch the data chunk from the file

Parameters
bufthe buffer to load into
offsetthe offset
buf_sizethe size of the data to fetch
Returns
the size retrieved, <= buf_size likely equal

Definition at line 203 of file rawcontainer.cpp.

References m_file.

Referenced by OpenRaw::RawFile::_getThumbnail(), OpenRaw::Internals::MRW::DataBlock::DataBlock(), OpenRaw::Internals::CIFF::RecordEntry::fetchData(), OpenRaw::Internals::NefFile::isCompressed(), OpenRaw::Internals::IfdEntry::loadData(), and OpenRaw::Internals::MRW::DataBlock::uint16_val().

◆ readInt16()

Option< int16_t > OpenRaw::Internals::RawContainer::readInt16 ( const IO::Stream::Ptr &  f)

Read an int16 following the m_endian set

Definition at line 81 of file rawcontainer.cpp.

References ENDIAN_LITTLE.

Referenced by OpenRaw::Internals::CIFF::Heap::Heap().

◆ readInt32()

Option< int32_t > OpenRaw::Internals::RawContainer::readInt32 ( const IO::Stream::Ptr &  f)

◆ readUInt16()

Option< uint16_t > OpenRaw::Internals::RawContainer::readUInt16 ( const IO::Stream::Ptr &  f)

◆ readUInt16Array()

size_t OpenRaw::Internals::RawContainer::readUInt16Array ( const IO::Stream::Ptr &  f,
std::vector< uint16_t > &  v,
size_t  count 
)

Read an array of uint16 following the m_endian set.

Parameters
vthe vector to fill. Will be resized if too small.
countthe number of elements to read
Returns
the number of element read. count if success.

Return the number of element read.

Definition at line 106 of file rawcontainer.cpp.

References ENDIAN_LITTLE.

◆ readUInt32()

Option< uint32_t > OpenRaw::Internals::RawContainer::readUInt32 ( const IO::Stream::Ptr &  f)

◆ size()

off_t OpenRaw::Internals::RawContainer::size ( ) const

Return the effective size of the container.

Definition at line 213 of file rawcontainer.cpp.

References m_file.

Referenced by OpenRaw::Internals::RafFile::_enumThumbnailSizes(), and OpenRaw::Internals::LJpegDecompressor::setSlices().

Member Data Documentation

◆ m_file

IO::Stream::Ptr OpenRaw::Internals::RawContainer::m_file
protected

◆ m_offset

off_t OpenRaw::Internals::RawContainer::m_offset
protected

the offset from the beginning of the file

Definition at line 102 of file rawcontainer.hpp.

Referenced by OpenRaw::Internals::IfdFileContainer::locateDirsPreHook().


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