/**
* @class dash::mpd::ISegmentList
* @brief This interface is needed for accessing the attributes and elements of the SegmentList element
* as specified in ISO/IEC 23009-1, Part 1, 2012, section 5.3.9.3.2, table 14
* @details The Segment list is defined by one or more SegmentList elements. Each SegmentList element itself contains a list of SegmentURL elements
* for a consecutive list of Segment URLs. Each Segment URL may contain the Media Segment URL and possibly a byte range.
* The Segment URL element may also contain an Index Segment.
* @see dash::mpd::ISegmentURL dash::mpd::IMultipleSegmentBase
*
* @author bitmovin Softwareentwicklung OG \n
* Email: libdash-dev@vicky.bitmovin.net
* @version 2.1
* @date 2013
* @copyright bitmovin Softwareentwicklung OG, All Rights Reserved \n\n
* This source code and its use and distribution, is subject to the terms
* and conditions of the applicable license agreement.
*/
#ifndef ISEGMENTLIST_H_
#define ISEGMENTLIST_H_
#include "config.h"
#include "ISegmentURL.h"
#include "IMultipleSegmentBase.h"
namespace dash
{
namespace mpd
{
class ISegmentList : public virtual IMultipleSegmentBase
{
public:
virtual ~ISegmentList(){}
/**
* Returns a reference to a vector of pointers to dash::mpd::ISegmentURL objects that are contained in this SegmentList.
* @return a reference to a vector of pointers to dash::mpd::ISegmentURL objects
*/
virtual const std::vector& GetSegmentURLs () const = 0;
/**
* Returns a reference to a string that specifies a reference to an external SegmentList element.
* @return a reference to a string
*/
virtual const std::string& GetXlinkHref () const = 0;
/**
* Returns a reference to a string that specifies the processing set - can be either \c \"onLoad\" or \c \"onRequest\".
* @return a reference to a string
*/
virtual const std::string& GetXlinkActuate () const = 0;
};
}
}
#endif /* ISEGMENTLIST_H_ */