18 #ifndef CORE_UBUNTU_MEDIA_TRACK_H_
19 #define CORE_UBUNTU_MEDIA_TRACK_H_
41 typedef std::string
Id;
48 return map == rhs.map;
53 return map != rhs.map;
56 template<
typename Tag>
59 return count(Tag::name());
62 template<
typename Tag>
63 void set(
const typename Tag::ValueType& value)
65 std::stringstream ss; ss << value;
66 set(Tag::name(), ss.str());
69 template<
typename Tag>
70 typename Tag::ValueType
get()
const
72 std::stringstream ss(
get(Tag::name()));
73 typename Tag::ValueType value; ss >> value;
75 return std::move(value);
78 std::size_t
count(
const std::string& key)
const
80 return map.count(key);
83 void set(
const std::string& key,
const std::string& value)
88 const std::string&
get(
const std::string& key)
const
93 const std::map<std::string, std::string>&
operator*()
const
99 std::map<std::string, std::string> map;
109 virtual const Id&
id()
const;
110 virtual const UriType&
uri()
const;
158 std::unique_ptr<Private> d;
164 #endif // CORE_UBUNTU_MEDIA_TRACK_H_