# FLAC::Metadata::Prototype Class Reference
[FLAC++/metadata.h: metadata object classes]

`#include <metadata.h>`

Inheritance diagram for FLAC::Metadata::Prototype:

List of all members.

## Detailed Description

Base class for all metadata block types. See the overview for more.

## Public Member Functions

virtual | ~Prototype ()
bool | operator== (const Prototype &) const
bool | operator== (const ::FLAC__StreamMetadata &) const
bool | operator== (const ::FLAC__StreamMetadata *) const
bool | operator!= (const Prototype &) const
bool | operator!= (const ::FLAC__StreamMetadata &) const
bool | operator!= (const ::FLAC__StreamMetadata *) const
bool | is_valid () const
bool | get_is_last () const
::FLAC__MetadataType | get_type () const
unsigned | get_length () const
void | set_is_last (bool)
| operator const ::FLAC__StreamMetadata * () const

## Protected Member Functions

| Prototype (const Prototype &)
| Prototype (const ::FLAC__StreamMetadata &)
| Prototype (const ::FLAC__StreamMetadata *)
| Prototype (::FLAC__StreamMetadata *object, bool copy)
Prototype & | operator= (const Prototype &)
Prototype & | operator= (const ::FLAC__StreamMetadata &)
Prototype & | operator= (const ::FLAC__StreamMetadata *)
Prototype & | assign_object (::FLAC__StreamMetadata *object, bool copy)
virtual void | clear ()

## Protected Attributes

::FLAC__StreamMetadata * | object_

## Friends

class | SimpleIterator
class | Iterator

## Constructor & Destructor Documentation

FLAC::Metadata::Prototype::Prototype | ( | const Prototype & |  | ) | `[protected]`

| Constructs a copy of the given object. This form always performs a deep copy.

FLAC::Metadata::Prototype::Prototype | ( | ::FLAC__StreamMetadata * | object,
|  | bool | copy
| ) | `[protected]`

Constructs an object with copy control. When copy is `true`, behaves identically to FLAC::Metadata::Prototype::Prototype(const ::FLAC__StreamMetadata *object). When copy is `false`, the instance takes ownership of the pointer and the FLAC__StreamMetadata object will be freed by the destructor.

Assertions:

       object != NULL

virtual FLAC::Metadata::Prototype::~Prototype | ( |  | ) | `[virtual]`

| Deletes the underlying FLAC__StreamMetadata object.

## Member Function Documentation

Prototype& FLAC::Metadata::Prototype::operator= | ( | const Prototype & |  | ) | `[protected]`

| Assign from another object. Always performs a deep copy.

Prototype& FLAC::Metadata::Prototype::assign_object | ( | ::FLAC__StreamMetadata * | object,
|  | bool | copy
| ) | `[protected]`

| Assigns an object with copy control. See Prototype(::FLAC__StreamMetadata *object, bool copy).

virtual void FLAC::Metadata::Prototype::clear | ( |  | ) | `[protected, virtual]`

| Deletes the underlying FLAC__StreamMetadata object.

bool FLAC::Metadata::Prototype::get_is_last | ( |  | ) | const

Returns `true` if this block is the last block in a stream, else `false`.

Assertions:

       is_valid()

::FLAC__MetadataType FLAC::Metadata::Prototype::get_type | ( |  | ) | const

Returns the type of the block.

Assertions:

       is_valid()

Reimplemented in FLAC::Metadata::Picture.

unsigned FLAC::Metadata::Prototype::get_length | ( |  | ) | const

Returns the stream length of the metadata block.

Note:
  The length does not include the metadata block header, per spec.

Assertions:

       is_valid()

void FLAC::Metadata::Prototype::set_is_last | ( | bool |  | ) |

Sets the "is_last" flag for the block. When using the iterators it is not necessary to set this flag; they will do it for you.

Assertions:

       is_valid()

The documentation for this class was generated from the following file:

- include/FLAC++/metadata.h

Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson |