libfacade 1.1
A library for manipulating PNG images with payloads.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
facade::png::ChunkVec Class Reference

A vector-based version of a given PNG chunk. More...

#include <png.hpp>

Inheritance diagram for facade::png::ChunkVec:
facade::png::End facade::png::Header facade::png::Text facade::png::ZText

Public Member Functions

 ChunkVec (const ChunkTag tag)
 
 ChunkVec (const ChunkTag tag, const void *ptr, std::size_t size)
 
 ChunkVec (const ChunkTag tag, const std::vector< std::uint8_t > &data)
 
 ChunkVec (const ChunkVec &other)
 
bool operator== (const ChunkVec &other) const
 
std::size_t length () const
 Return the length of this chunk's data.
 
ChunkTagtag ()
 Return the chunk tag reference associated with this chunk.
 
const ChunkTagtag () const
 Return a const chunk tag reference associated with this chunk.
 
std::vector< std::uint8_t > & data ()
 Return the chunk data reference associated with this chunk.
 
const std::vector< std::uint8_t > & data () const
 Return const chunk data reference associated with this chunk.
 
void set_data (std::vector< std::uint8_t > &data)
 Set the chunk data for this chunk.
 
std::uint32_t crc () const
 Calculate the CRC value of this chunk.
 
std::pair< std::vector< std::uint8_t >, ChunkPtrto_chunk_ptr () const
 Convert this ChunkVec to a facade::png::ChunkPtr.
 
template<typename T >
T & upcast ()
 Create a reference to a higher-level ChunkVec object, such as facade::png::Header.
 
template<typename T >
const T & upcast () const
 Create a const reference to a higher-level ChunkVec object, such as facade::png::Header.
 
ChunkVecas_chunk_vec ()
 Interpret this ChunkVec derivative as a ChunkVec object.
 
const ChunkVecas_chunk_vec () const
 Interpret this ChunkVec derivative as a const ChunkVec object.
 

Detailed Description

A vector-based version of a given PNG chunk.

This is the base class of many different types of PNG chunks, such as facade::png::Header and facade::png::Text.

Constructor & Destructor Documentation

◆ ChunkVec() [1/4]

facade::png::ChunkVec::ChunkVec ( const ChunkTag  tag)
inline

◆ ChunkVec() [2/4]

facade::png::ChunkVec::ChunkVec ( const ChunkTag  tag,
const void *  ptr,
std::size_t  size 
)
inline

◆ ChunkVec() [3/4]

facade::png::ChunkVec::ChunkVec ( const ChunkTag  tag,
const std::vector< std::uint8_t > &  data 
)
inline

◆ ChunkVec() [4/4]

facade::png::ChunkVec::ChunkVec ( const ChunkVec other)
inline

Member Function Documentation

◆ as_chunk_vec() [1/2]

ChunkVec & ChunkVec::as_chunk_vec ( )

Interpret this ChunkVec derivative as a ChunkVec object.

Really only useful when turning a derived ChunkVec object into its base.

◆ as_chunk_vec() [2/2]

const ChunkVec & ChunkVec::as_chunk_vec ( ) const

Interpret this ChunkVec derivative as a const ChunkVec object.

Really only useful when turning a derived ChunkVec object into its base.

◆ crc()

std::uint32_t ChunkVec::crc ( ) const

Calculate the CRC value of this chunk.

◆ data() [1/2]

std::vector< std::uint8_t > & ChunkVec::data ( )

Return the chunk data reference associated with this chunk.

◆ data() [2/2]

const std::vector< std::uint8_t > & ChunkVec::data ( ) const

Return const chunk data reference associated with this chunk.

◆ length()

std::size_t ChunkVec::length ( ) const

Return the length of this chunk's data.

◆ operator==()

bool ChunkVec::operator== ( const ChunkVec other) const

◆ set_data()

void ChunkVec::set_data ( std::vector< std::uint8_t > &  data)

Set the chunk data for this chunk.

Parameters
dataThe data vector to set for the chunk's data.

◆ tag() [1/2]

ChunkTag & ChunkVec::tag ( )

Return the chunk tag reference associated with this chunk.

◆ tag() [2/2]

const ChunkTag & ChunkVec::tag ( ) const

Return a const chunk tag reference associated with this chunk.

◆ to_chunk_ptr()

std::pair< std::vector< std::uint8_t >, ChunkPtr > ChunkVec::to_chunk_ptr ( ) const

Convert this ChunkVec to a facade::png::ChunkPtr.

Warning
If the vector returned by this function goes out of scope, the returned ChunkPtr will point at deleted data. Make sure the vector and the ChunkPtr object retain the same scope.

◆ upcast() [1/2]

template<typename T >
T & facade::png::ChunkVec::upcast ( )
inline

Create a reference to a higher-level ChunkVec object, such as facade::png::Header.

◆ upcast() [2/2]

template<typename T >
const T & facade::png::ChunkVec::upcast ( ) const
inline

Create a const reference to a higher-level ChunkVec object, such as facade::png::Header.


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