# Poco

# template < class B >

# class Manifest

Library: Foundation
Package: SharedLibrary
Header: Poco/Manifest.h

## Description

A Manifest maintains a list of all classes contained in a dynamically loadable class library. Internally, the information is held in a map. An iterator is provided to iterate over all the classes in a Manifest.

## Inheritance

Direct Base Classes: ManifestBase

All Base Classes: ManifestBase

## Member Summary

Member Functions: begin, className, clear, empty, end, find, insert, size

Inherited Functions: className

## Nested Classes

### class Iterator

The Manifest's very own iterator class.

## Types Aliases

### Meta

using Meta = AbstractMetaObject < B >;

### MetaMap

using MetaMap = std::map < std::string, const Meta * >;

## Constructors

### Manifest

Manifest() = default;

Creates an empty Manifest.

## Destructor

### ~Manifest

~Manifest() override;

Destroys the Manifest.

## Member Functions

### begin

Iterator begin() const;

### className

const char * className() const override;

See also: Poco::ManifestBase::className()

### clear

void clear();

Removes all MetaObjects from the manifest.

### empty

bool empty() const;

Returns true iff the Manifest does not contain any MetaObjects.

### end

Iterator end() const;

### find

Iterator find(
const std::string & className
) const;

Returns an iterator pointing to the MetaObject for the given class. If the MetaObject cannot be found, the iterator points to end().

### insert

bool insert(
const Meta * pMeta
);

Inserts a MetaObject. Returns true if insertion was successful, false if a class with the same name already exists.

### size

int size() const;

Returns the number of MetaObjects in the Manifest.