12#ifndef __Identifiable_H
13#define __Identifiable_H
15#include "ReferenceTo.h"
22 virtual bool identify (
const std::string& name);
25 virtual void set_identity (
const std::string&);
28 virtual std::string get_identity ()
const;
31 virtual void set_description (
const std::string&);
34 virtual std::string get_description ()
const;
37 virtual void add_alias (
const std::string&);
41 template<
class Parent>
class Proxy;
46 std::vector<std::string> identities;
49 std::string description;
54class Identifiable::Proxy :
public Parent
56 Reference::To<Identifiable> decorated;
60 Proxy (Identifiable*
id) { decorated = id; }
62 bool identify (
const std::string& name)
63 {
return decorated->identify(name); }
65 std::string get_identity ()
const
66 {
return decorated->get_identity (); }
68 std::string get_description ()
const
69 {
return decorated->get_description (); }
73class Identifiable::Decorator :
public Identifiable::Proxy<Identifiable>
76 Decorator (Identifiable*
id) : Proxy<Identifiable> (id) { }
Manages Reference::To references to the instance.
Definition ReferenceAble.h:35