00001 #ifndef __OBSERVABLEINTERFACE_H 00002 #define __OBSERVABLEINTERFACE_H 00003 00004 #include <vector> 00005 class ListenerInterface; 00006 00007 class ObservableInterface { 00008 public: 00009 virtual ~ObservableInterface() {} 00010 virtual void registerListener(ListenerInterface*); 00011 virtual void removeListener(ListenerInterface*); 00012 std::vector<ListenerInterface*> getListeners(); 00013 virtual void fireEvent(int event); 00014 virtual void fireEvent(int event, void* object); 00015 00016 private: 00018 std::vector<ListenerInterface*> m_listeners; 00019 }; 00020 00021 #endif