00001 /* -*- c++ -*- */ 00002 00014 #ifndef ObserverWrap_H 00015 #define ObserverWrap_H 00016 00017 #include "pattern/Observer.h" 00018 00019 namespace hippodraw { 00020 00029 class ObserverWrap : public hippodraw::Observer, 00030 public boost::python::wrapper < hippodraw::Observer > 00031 { 00032 private: 00033 00036 PyObject * m_self; 00037 00040 template < class T > 00041 boost::python::object get_owner ( T * me ) const; 00042 00043 public: 00044 00047 ObserverWrap ( PyObject * self ); 00048 00049 ObserverWrap(); 00050 ObserverWrap ( const Observer & ); 00051 00052 void update ( const Observable * ); 00053 00054 }; 00055 00056 } // namespace hippodraw 00057 00058 #endif // ObserverWrap_H