/** * @class dash::mpd::ISegment * @brief This interface is needed for setting values of a Segment * @details Several methods for setting the values of member variables are provided. \n\n * These are only needed in case you do not want to use the values provided by the MPD. * @see dash::network::IDownloadableChunk dash::network::IChunk * * @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 ISEGMENT_H_ #define ISEGMENT_H_ #include "config.h" #include "IDownloadableChunk.h" namespace dash { namespace mpd { class ISegment : public virtual network::IDownloadableChunk { public: virtual ~ISegment(){} /** * This method allows you to specify an absolute URI for this Segment * @param uri a string representing an URI */ virtual void AbsoluteURI (std::string uri) = 0; /** * This method allows you to specify a host for this Segment * @param host a string representing an host */ virtual void Host (std::string host) = 0; /** * This method allows you to specify a port for this Segment * @param port an integer representing a portnumber */ virtual void Port (size_t port) = 0; /** * This method allows you to specify a path for this Segment * @param path a string representing a path */ virtual void Path (std::string path) = 0; /** * This method allows you to specify a byte range for this Segment * @param range a string representing a byte range as definend in ISO/IEC 23009-1, Part 1, 2012, section 5.3.9.2.2, table 13:\n The byte range shall be expressed and formatted as a \c byte-range-spec as defined in RFC 2616, Clause 14.35.1. It is restricted to a single expression identifying a contiguous range of bytes. */ virtual void Range (std::string range) = 0; /** * This method allows you to specify the start byte for this Segment * @param startByte an integer representing the start byte */ virtual void StartByte (size_t startByte) = 0; /** * This method allows you to specify the end byte for this Segment * @param endByte an integer representing the end byte */ virtual void EndByte (size_t endByte) = 0; /** * This method allows you to specify whether this Segment has a byte range or not * @param hasByteRange a bool value, \c true to specify that this Segment has a byte range, \c false otherwise */ virtual void HasByteRange (bool hasByteRange) = 0; }; } } #endif /* ISEGMENT_H_ */