#ifndef PROTOTYPE_REPOSITORY_PROTOCOL_H
#define PROTOTYPE_REPOSITORY_PROTOCOL_H

#ifndef ANY_H
#include "Any.h"
#endif

namespace MM
{

class Prototype_repository_protocol
{
public:
    virtual ~Prototype_repository_protocol ();
    virtual Any &   find  (std::type_info const& type) =0;
    virtual void    adopt (Any const& prototype, std::type_info const& type) =0;

    virtual Any &   find  (Text const& type) =0;
    virtual void    adopt (Text const& type, Any  const& prototype) =0;
};

}//MM

#endif //PROTOTYPE_REPOSITORY_PROTOCOL_H
