1 #ifndef TAG_PARSER_TAGFIELD_H 2 #define TAG_PARSER_TAGFIELD_H 8 template <
class implementationType>
class TagField;
42 std::string idToString()
const;
48 void setValue(
const TagValue &value);
53 void removeTypeInfo();
54 bool isTypeInfoAssigned()
const;
56 bool isDefault()
const;
57 void setDefault(
bool isDefault);
61 bool isAdditionalTypeInfoUsed()
const;
63 const std::vector<ImplementationType> &nestedFields()
const;
64 std::vector<ImplementationType> &nestedFields();
65 bool supportsNestedFields()
const;
74 bool m_typeInfoAssigned;
76 std::vector<ImplementationType> m_nestedFields;
82 template <
class ImplementationType>
87 , m_typeInfoAssigned(false)
95 template <
class ImplementationType>
100 , m_typeInfoAssigned(false)
122 return ImplementationType::fieldIdToString(m_id);
170 m_value.clearDataAndMetadata();
186 m_typeInfo = typeInfo;
187 m_typeInfoAssigned =
true;
196 m_typeInfoAssigned =
false;
204 return m_typeInfoAssigned;
220 m_default = isDefault;
231 m_typeInfoAssigned =
false;
233 static_cast<ImplementationType *>(
this)->reset();
252 return m_nestedFields;
262 return m_nestedFields;
282 #endif // TAG_PARSER_TAGFIELD_H Defines traits for the specified ImplementationType.
bool supportsNestedFields() const
Returns whether nested fields are supported by the implementation.
The TagField class is used by FieldMapBasedTag to store the fields.
typename TagFieldTraits< Id3v2Frame >::IdentifierType IdentifierType
typename TagFieldTraits< Id3v2Frame >::TypeInfoType TypeInfoType
The TagValue class wraps values of different types.
Contains all classes and functions of the TagInfo library.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TagField()
Constructs an empty TagField.
bool isAdditionalTypeInfoUsed() const
Returns an indication whether the additional type info is used.