StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
Loading...
Searching...
No Matches
StormByte::Multimedia::Container Class Reference

Immutable container identity owned by StormByte::Multimedia::Registry. More...

#include <StormByte/multimedia/container.hxx>

Public Member Functions

 Container (const Container &) noexcept=delete
 Copy is disabled; instances are unique in the registry.
 Container (Container &&) noexcept=default
 Move constructor.
 ~Container () noexcept=default
 Destructor.
Container & operator= (const Container &) noexcept=delete
 Copy assignment is disabled.
Container & operator= (Container &&) noexcept=default
 Move assignment.
bool operator== (const Container &other) const noexcept
 Identity equality (same registry slot).
bool operator!= (const Container &other) const noexcept
 Identity inequality.
constexpr std::string_view Name () const noexcept
 StormByte container name.
constexpr std::string_view Description () const noexcept
 Human description.
constexpr std::string_view Extension () const noexcept
 Default file extension without a leading dot.
bool HasAccess (Access access) const noexcept
 Tests Read/Write flags.
bool Allows (const CodecRefs &codecs) const noexcept
 Whether every codec in codecs is allowed in this container.

Friends

class Registry

Detailed Description

Immutable container identity owned by StormByte::Multimedia::Registry.

Name() is the StormByte key. FFmpeg format ids live only in the registry map.

Constructor & Destructor Documentation

◆ Container() [1/2]

StormByte::Multimedia::Container::Container ( const Container & )
deletenoexcept

Copy is disabled; instances are unique in the registry.

◆ Container() [2/2]

StormByte::Multimedia::Container::Container ( Container && )
defaultnoexcept

Move constructor.

◆ ~Container()

StormByte::Multimedia::Container::~Container ( )
defaultnoexcept

Destructor.

Member Function Documentation

◆ Allows()

bool StormByte::Multimedia::Container::Allows ( const CodecRefs & codecs) const
noexcept

Whether every codec in codecs is allowed in this container.

Parameters
codecsCodecs to test.
Returns
true if codecs is empty or all entries are in the compatibility set.

◆ Description()

std::string_view StormByte::Multimedia::Container::Description ( ) const
inlineconstexprnoexcept

Human description.

Returns
View to a process-lifetime literal.

◆ Extension()

std::string_view StormByte::Multimedia::Container::Extension ( ) const
inlineconstexprnoexcept

Default file extension without a leading dot.

Returns
View to a table literal, or empty if the row has none.

◆ HasAccess()

bool StormByte::Multimedia::Container::HasAccess ( Access access) const
noexcept

Tests Read/Write flags.

Parameters
accessFlags to test.
Returns
true if every bit in access is set.

◆ Name()

std::string_view StormByte::Multimedia::Container::Name ( ) const
inlineconstexprnoexcept

StormByte container name.

Returns
View to a process-lifetime literal.

◆ operator!=()

bool StormByte::Multimedia::Container::operator!= ( const Container & other) const
noexcept

Identity inequality.

Parameters
otherOther container.
Returns
true if they are different instances.

◆ operator=() [1/2]

Container & StormByte::Multimedia::Container::operator= ( const Container & )
deletenoexcept

Copy assignment is disabled.

Returns
*this.

◆ operator=() [2/2]

Container & StormByte::Multimedia::Container::operator= ( Container && )
defaultnoexcept

Move assignment.

Returns
*this.

◆ operator==()

bool StormByte::Multimedia::Container::operator== ( const Container & other) const
noexcept

Identity equality (same registry slot).

Parameters
otherOther container.
Returns
true if both refer to the same instance.

◆ Registry

friend class Registry
friend

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