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();
244 return static_cast<ImplementationType *
>(
this)->isAdditionalTypeInfoUsed();
252 return m_nestedFields;
262 return m_nestedFields;
270 return static_cast<ImplementationType *
>(
this)->supportsNestedFields();
282 #endif // TAG_PARSER_TAGFIELD_H
TagFieldTraits< ImplementationType >::IdentifierType IdentifierType
TagFieldTraits< ImplementationType >::TypeInfoType TypeInfoType
The TagField class is used by FieldMapBasedTag to store the fields.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TagField()
Constructs an empty TagField.