39 #if !defined(TAWARA_CLUSTER_H_)
40 #define TAWARA_CLUSTER_H_
154 typedef boost::shared_ptr<Cluster>
Ptr;
179 virtual bool empty()
const = 0;
181 virtual size_type count()
const = 0;
183 virtual void clear() = 0;
206 virtual void push_back(value_type
const& value) = 0;
229 {
return silent_tracks_; }
239 uint64_t position()
const;
254 std::streamsize
size()
const;
263 std::streamsize
read(std::istream& input)
276 virtual std::streamsize finalise(std::ostream& output) = 0;
287 std::streamsize meta_size()
const;
291 {
return meta_size() + blocks_size(); }
294 std::streamsize write_size(std::ostream& output);
297 std::streamsize write_body(std::ostream& output);
300 std::streamsize read_body(std::istream& input,
301 std::streamsize
size);
304 virtual std::streamsize blocks_size()
const = 0;
327 virtual std::streamsize read_blocks(std::istream& input,
328 std::streamsize
size) = 0;
334 std::streamsize read_silent_tracks(std::istream& input);
337 virtual void reset();
344 #endif // TAWARA_CLUSTER_H_
value_type & reference
The reference type.
boost::shared_ptr< BlockElement > Ptr
virtual std::streamsize read(std::istream &input)
Element reading.
std::streamsize read(std::istream &input)
Element reading.
void timecode(uint64_t timecode)
Set the cluster's timecode.
std::streamsize size(ID id)
Get the number of bytes required by an ID.
BlockElement::Ptr value_type
The value type of this container.
The MasterElement interface.
boost::shared_ptr< Cluster > Ptr
Pointer to a cluster.
The track number of a silent track.
std::streamsize body_size() const
Get the size of the body of this element.
Unsigned integer primitive element.
SilentTrackNumber(uint64_t track_number)
The base Cluster, defining the common interface for Cluster element implementations.
value_type const & const_reference
The constant reference type.
virtual ~Cluster()
Destructor.
void previous_size(uint64_t size)
Set the size of the previous cluster in the segment.
size_t size_type
The size type of this container.
uint64_t timecode() const
Get the cluster's timecode.
std::vector< SilentTrackNumber > & silent_tracks()
Get the list of silent tracks.
const ID Cluster(0x1F43B675)
uint64_t previous_size() const
Get the size of the previous cluster in the segment.
std::vector< SilentTrackNumber > silent_tracks_