1#ifndef _BBC_PARSE_DASH_MPD_CONTENT_POPULARITY_RATE_HH_
2#define _BBC_PARSE_DASH_MPD_CONTENT_POPULARITY_RATE_HH_
64 PR(
const std::optional<unsigned int> &popularity_rate = std::nullopt,
65 const std::optional<unsigned long> &
start = std::nullopt,
67 :m_popularityRate(popularity_rate)
71 if (popularity_rate < 1 || popularity_rate > 100)
72 throw std::out_of_range(
"popularityRate attribute of PR element must be between 1 and 100 inclusive.");
82 :m_popularityRate(other.m_popularityRate)
83 ,m_start(other.m_start)
94 :m_popularityRate(
std::move(other.m_popularityRate))
95 ,m_start(
std::move(other.m_start))
112 m_popularityRate = other.m_popularityRate;
113 m_start = other.m_start;
118 m_popularityRate = std::move(other.m_popularityRate);
119 m_start = std::move(other.m_start);
133 if (m_r != other.m_r)
return false;
134 if (m_popularityRate != other.m_popularityRate)
return false;
135 if (m_start != other.m_start)
return false;
160 const std::optional<unsigned int> &
popularityRate()
const {
return m_popularityRate; };
175 PR &
popularityRate(
const std::optional<unsigned int> &val) { m_popularityRate = val;
return *
this; };
176 PR &
popularityRate(std::optional<unsigned int> &&val) { m_popularityRate = std::move(val);
return *
this; };
185 bool hasStart()
const {
return m_start.has_value(); };
191 const std::optional<unsigned long> &
start()
const {
return m_start; };
197 PR &
start(
const std::nullopt_t&) { m_start.reset();
return *
this; };
205 PR &
start(
unsigned long val) { m_start = val;
return *
this; };
206 PR &
start(
const std::optional<unsigned long> &val) { m_start = val;
return *
this; };
207 PR &
start(std::optional<unsigned long> &&val) { m_start = std::move(val);
return *
this; };
216 int r()
const {
return m_r; };
225 PR &
r(
int val) { m_r = val;
return *
this; };
230 PR(xmlpp::Node &node);
231 void setXMLElement(xmlpp::Element &elem)
const;
235 std::optional<unsigned int> m_popularityRate;
236 std::optional<unsigned long> m_start;
305 const std::list<PR> &
prs()
const {
return m_prs; };
312 std::list<PR>::const_iterator
cbegin()
const {
return m_prs.cbegin(); };
313 std::list<PR>::const_iterator
begin()
const {
return m_prs.cbegin(); };
314 std::list<PR>::iterator
begin() {
return m_prs.begin(); };
315 std::list<PR>::const_iterator
prsBegin()
const {
return m_prs.cbegin(); };
316 std::list<PR>::iterator
prsBegin() {
return m_prs.begin(); };
324 std::list<PR>::const_iterator
cend()
const {
return m_prs.cend(); };
325 std::list<PR>::const_iterator
end()
const {
return m_prs.cend(); };
326 std::list<PR>::iterator
end() {
return m_prs.end(); };
327 std::list<PR>::const_iterator
prsEnd()
const {
return m_prs.cend(); };
328 std::list<PR>::iterator
prsEnd() {
return m_prs.end(); };
390 void setXMLElement(xmlpp::Element &element)
const;
Definition ContentPopularityRate.hh:46
const std::optional< unsigned long > & start() const
Definition ContentPopularityRate.hh:191
PR & popularityRate(unsigned int val)
Definition ContentPopularityRate.hh:174
bool hasPopularityRate() const
Definition ContentPopularityRate.hh:154
PR & r(int val)
Definition ContentPopularityRate.hh:225
bool operator!=(const PR &other)
Definition ContentPopularityRate.hh:146
PR & start(std::optional< unsigned long > &&val)
Definition ContentPopularityRate.hh:207
PR(const std::optional< unsigned int > &popularity_rate=std::nullopt, const std::optional< unsigned long > &start=std::nullopt, int r=0)
Definition ContentPopularityRate.hh:64
PR & start(const std::nullopt_t &)
Definition ContentPopularityRate.hh:197
PR & popularityRate(const std::optional< unsigned int > &val)
Definition ContentPopularityRate.hh:175
bool hasStart() const
Definition ContentPopularityRate.hh:185
PR & start(unsigned long val)
Definition ContentPopularityRate.hh:205
PR & operator=(const PR &other)
Definition ContentPopularityRate.hh:111
bool operator==(const PR &other)
Definition ContentPopularityRate.hh:132
PR & start(const std::optional< unsigned long > &val)
Definition ContentPopularityRate.hh:206
PR & popularityRate(std::optional< unsigned int > &&val)
Definition ContentPopularityRate.hh:176
PR(const PR &other)
Definition ContentPopularityRate.hh:81
PR(PR &&other)
Definition ContentPopularityRate.hh:93
PR & popularityRate(const std::nullopt_t &)
Definition ContentPopularityRate.hh:166
int r() const
Definition ContentPopularityRate.hh:216
PR & operator=(PR &&other)
Definition ContentPopularityRate.hh:117
virtual ~PR()
Definition ContentPopularityRate.hh:101
const std::optional< unsigned int > & popularityRate() const
Definition ContentPopularityRate.hh:160
std::list< PR >::iterator prsEnd()
Definition ContentPopularityRate.hh:328
virtual ~ContentPopularityRate()
Definition ContentPopularityRate.hh:267
ContentPopularityRate & prsRemove(const std::list< PR >::iterator &it)
std::list< PR >::const_iterator prsBegin() const
Definition ContentPopularityRate.hh:315
std::list< PR >::const_iterator prsEnd() const
Definition ContentPopularityRate.hh:327
std::list< PR >::iterator begin()
Definition ContentPopularityRate.hh:314
ContentPopularityRate & operator=(ContentPopularityRate &&to_move)
std::list< PR >::iterator prsBegin()
Definition ContentPopularityRate.hh:316
ContentPopularityRate & prsAdd(PR &&pr)
Definition ContentPopularityRate.hh:350
ContentPopularityRate & prsAdd(const PR &pr)
Definition ContentPopularityRate.hh:349
std::list< PR >::const_iterator cbegin() const
Definition ContentPopularityRate.hh:312
std::list< PR >::const_iterator cend() const
Definition ContentPopularityRate.hh:324
std::list< PR >::const_iterator end() const
Definition ContentPopularityRate.hh:325
ContentPopularityRate(const ContentPopularityRate &to_copy)
std::list< PR >::const_iterator begin() const
Definition ContentPopularityRate.hh:313
ContentPopularityRate & prsRemove(const PR &pr)
ContentPopularityRate & prs(std::list< PR > &&prs_list)
Definition ContentPopularityRate.hh:340
ContentPopularityRate(ContentPopularityRate &&to_move)
std::list< PR >::iterator end()
Definition ContentPopularityRate.hh:326
ContentPopularityRate & operator=(const ContentPopularityRate &to_copy)
ContentPopularityRate & prsRemove(const std::list< PR >::const_iterator &it)
ContentPopularityRate & prs(const std::list< PR > &prs_list)
Definition ContentPopularityRate.hh:339
const std::list< PR > & prs() const
Definition ContentPopularityRate.hh:305
bool operator==(const ContentPopularityRate &to_compare) const
Definition RepresentationBase.hh:54
#define LIBMPDPP_NAMESPACE_END
Definition macros.hh:54
#define LIBMPDPP_PUBLIC_API
Used to mark something as part of the public API.
Definition macros.hh:21
#define LIBMPDPP_NAMESPACE_BEGIN
Definition macros.hh:50
Definition SegmentAvailability.hh:87