00001 #ifndef ERIS_TYPE_BOUND_REDISPATCH_H
00002 #define ERIS_TYPE_BOUND_REDISPATCH_H
00003
00004 #include <Eris/Redispatch.h>
00005 #include <set>
00006
00007 namespace Eris
00008 {
00009
00010 class TypeInfo;
00011 typedef std::set<TypeInfo*> TypeInfoSet;
00012
00013 class TypeBoundRedispatch : public Redispatch
00014 {
00015 public:
00016 TypeBoundRedispatch(Connection* con, const Atlas::Objects::Root& obj, TypeInfo* unbound);
00017 TypeBoundRedispatch(Connection* con, const Atlas::Objects::Root& obj, const TypeInfoSet& unbound);
00018 void onBound(TypeInfo* bound);
00019 void onBadType(TypeInfo* bad);
00020 private:
00021 Connection* m_con;
00022 TypeInfoSet m_unbound;
00023 };
00024
00025 }
00026
00027 #endif