00001 #ifndef ATLFAST_IAOO_H
00002 #define ATLFAST_IAOO_H
00008
00009 #ifndef STD_VECTOR_H
00010 #include <vector>
00011 #define STD_VECTOR_H
00012 #endif
00013
00014 #ifndef STD_STRING_H
00015 #include <string>
00016 #define STD_STRING_H
00017 #endif
00018
00019 namespace Atlfast {
00020
00021 class IAOO;
00022 class IAOOvisitor;
00023
00024 class IAOO {
00025 public:
00026
00027
00028
00033 virtual ~IAOO();
00035 virtual void accept(IAOOvisitor*) const = 0;
00037 virtual void associate( const IAOO* otherEntity ) = 0;
00039 virtual std::vector<const IAOO*>::const_iterator begin() const = 0;
00040 virtual std::vector<const IAOO*>::const_iterator end() const = 0;
00042 virtual bool unAssociated() const = 0;
00044 virtual void reset() = 0;
00046 virtual void dump(const std::string& s) const =0;
00047 };
00048
00049 }
00050 #endif
00051
00052
00053
00054