Tag Parser  9.0.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Public Types | Public Member Functions | Friends | List of all members
TagParser::TagField< ImplementationType > Class Template Reference

The TagField class is used by FieldMapBasedTag to store the fields. More...

#include <generictagfield.h>

Inheritance diagram for TagParser::TagField< ImplementationType >:
[legend]

Public Types

using IdentifierType = typename TagFieldTraits< ImplementationType >::IdentifierType
 
using TypeInfoType = typename TagFieldTraits< ImplementationType >::TypeInfoType
 

Public Member Functions

 TagField ()
 Constructs an empty TagField. More...
 
 TagField (const IdentifierType &id, const TagValue &value)
 Constructs a new TagField with the specified id and value. More...
 
 ~TagField ()
 Destroys the TagField. More...
 
const IdentifierTypeid () const
 Returns the id of the current TagField. More...
 
std::string idToString () const
 
void setId (const IdentifierType &id)
 Sets the id of the current Tag Field. More...
 
void clearId ()
 Clears the id of the current TagField. More...
 
TagValuevalue ()
 Returns the value of the current TagField. More...
 
const TagValuevalue () const
 Returns the value of the current TagField. More...
 
void setValue (const TagValue &value)
 Sets the value of the current TagField. More...
 
void clearValue ()
 Clears the value of the current TagField. More...
 
const TypeInfoTypetypeInfo () const
 Returns the type info of the current TagField. More...
 
void setTypeInfo (const TypeInfoType &typeInfo)
 Sets the type info of the current TagField. More...
 
void removeTypeInfo ()
 Removes the type info from the current TagField. More...
 
bool isTypeInfoAssigned () const
 Returns an indication whether a type info is assigned. More...
 
bool isDefault () const
 Returns an indication whether the field is labeled as default. More...
 
void setDefault (bool isDefault)
 Sets whether the field is labeled as default. More...
 
void clear ()
 Clears id, value, type info, sets default flag to false and resets further implementation specific values. More...
 
bool isAdditionalTypeInfoUsed () const
 Returns an indication whether the additional type info is used. More...
 
const std::vector< ImplementationType > & nestedFields () const
 Returns the nested fields. More...
 
std::vector< ImplementationType > & nestedFields ()
 Returns the nested fields. More...
 
bool supportsNestedFields () const
 Returns whether nested fields are supported by the implementation. More...
 

Friends

class TagFieldTraits< ImplementationType >
 

Detailed Description

template<class ImplementationType>
class TagParser::TagField< ImplementationType >

The TagField class is used by FieldMapBasedTag to store the fields.

A TagField consists of an identifier and a value. An additional type info might be assigned as well. The usage of the type info depends on the particular tag implementation.

Template Parameters
ImplementationTypeSpecifies the type of the actual implementation.
Remarks
This template class is intended to be subclassed using with the "Curiously recurring template pattern".

Definition at line 8 of file generictagfield.h.

Member Typedef Documentation

◆ IdentifierType

template<class ImplementationType>
using TagParser::TagField< ImplementationType >::IdentifierType = typename TagFieldTraits<ImplementationType>::IdentifierType

Definition at line 34 of file generictagfield.h.

◆ TypeInfoType

template<class ImplementationType>
using TagParser::TagField< ImplementationType >::TypeInfoType = typename TagFieldTraits<ImplementationType>::TypeInfoType

Definition at line 35 of file generictagfield.h.

Constructor & Destructor Documentation

◆ TagField() [1/2]

template<class ImplementationType >
TagParser::TagField< ImplementationType >::TagField ( )

Constructs an empty TagField.

Definition at line 83 of file generictagfield.h.

◆ TagField() [2/2]

template<class ImplementationType >
TagParser::TagField< ImplementationType >::TagField ( const IdentifierType id,
const TagValue value 
)

Constructs a new TagField with the specified id and value.

Definition at line 96 of file generictagfield.h.

◆ ~TagField()

template<class ImplementationType >
TagParser::TagField< ImplementationType >::~TagField ( )

Destroys the TagField.

Definition at line 108 of file generictagfield.h.

Member Function Documentation

◆ clear()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::clear ( )

Clears id, value, type info, sets default flag to false and resets further implementation specific values.

Definition at line 226 of file generictagfield.h.

◆ clearId()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::clearId ( )
inline

Clears the id of the current TagField.

Definition at line 136 of file generictagfield.h.

◆ clearValue()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::clearValue ( )
inline

Clears the value of the current TagField.

Definition at line 168 of file generictagfield.h.

◆ id()

template<class ImplementationType >
const TagField< ImplementationType >::IdentifierType & TagParser::TagField< ImplementationType >::id ( ) const
inline

Returns the id of the current TagField.

Definition at line 115 of file generictagfield.h.

◆ idToString()

template<class ImplementationType >
std::string TagParser::TagField< ImplementationType >::idToString ( ) const
inline

Definition at line 120 of file generictagfield.h.

◆ isAdditionalTypeInfoUsed()

template<class ImplementationType >
bool TagParser::TagField< ImplementationType >::isAdditionalTypeInfoUsed ( ) const
inline

Returns an indication whether the additional type info is used.

The default implementation always returns false. The method might be reimplemented when subclassing.

Definition at line 242 of file generictagfield.h.

◆ isDefault()

template<class ImplementationType >
bool TagParser::TagField< ImplementationType >::isDefault ( ) const
inline

Returns an indication whether the field is labeled as default.

Definition at line 210 of file generictagfield.h.

◆ isTypeInfoAssigned()

template<class ImplementationType >
bool TagParser::TagField< ImplementationType >::isTypeInfoAssigned ( ) const
inline

Returns an indication whether a type info is assigned.

Definition at line 202 of file generictagfield.h.

◆ nestedFields() [1/2]

template<class ImplementationType >
std::vector< ImplementationType > & TagParser::TagField< ImplementationType >::nestedFields ( )
inline

Returns the nested fields.

Remarks
Might be modified. Not all implementations support nested fields.
See also
supportsNestedFields()

Definition at line 260 of file generictagfield.h.

◆ nestedFields() [2/2]

template<class ImplementationType >
const std::vector< ImplementationType > & TagParser::TagField< ImplementationType >::nestedFields ( ) const

Returns the nested fields.

Definition at line 250 of file generictagfield.h.

◆ removeTypeInfo()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::removeTypeInfo ( )
inline

Removes the type info from the current TagField.

Definition at line 193 of file generictagfield.h.

◆ setDefault()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::setDefault ( bool  isDefault)
inline

Sets whether the field is labeled as default.

Definition at line 218 of file generictagfield.h.

◆ setId()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::setId ( const IdentifierType id)
inline

Sets the id of the current Tag Field.

Definition at line 128 of file generictagfield.h.

◆ setTypeInfo()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::setTypeInfo ( const TypeInfoType typeInfo)
inline

Sets the type info of the current TagField.

Definition at line 184 of file generictagfield.h.

◆ setValue()

template<class ImplementationType >
void TagParser::TagField< ImplementationType >::setValue ( const TagValue value)
inline

Sets the value of the current TagField.

Definition at line 160 of file generictagfield.h.

◆ supportsNestedFields()

template<class ImplementationType >
bool TagParser::TagField< ImplementationType >::supportsNestedFields ( ) const
inline

Returns whether nested fields are supported by the implementation.

Definition at line 268 of file generictagfield.h.

◆ typeInfo()

template<class ImplementationType >
const TagField< ImplementationType >::TypeInfoType & TagParser::TagField< ImplementationType >::typeInfo ( ) const
inline

Returns the type info of the current TagField.

Definition at line 176 of file generictagfield.h.

◆ value() [1/2]

template<class ImplementationType >
TagValue & TagParser::TagField< ImplementationType >::value ( )
inline

Returns the value of the current TagField.

Definition at line 144 of file generictagfield.h.

◆ value() [2/2]

template<class ImplementationType >
const TagValue & TagParser::TagField< ImplementationType >::value ( ) const
inline

Returns the value of the current TagField.

Definition at line 152 of file generictagfield.h.

Friends And Related Function Documentation

◆ TagFieldTraits< ImplementationType >

template<class ImplementationType>
friend class TagFieldTraits< ImplementationType >
friend

Definition at line 31 of file generictagfield.h.


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