* Author: Robert Nagy, ronag89@gmail.com\r
*/\r
\r
-\r
#pragma once\r
\r
-#include <common/memory/safe_ptr.h>\r
+#include <common/spl/memory.h>\r
+\r
+#include <core/monitor/monitor.h>\r
\r
#include <boost/noncopyable.hpp>\r
\r
class video_channel;\r
}\r
\r
-class server : boost::noncopyable\r
+class server sealed : public monitor::observable\r
+ , boost::noncopyable\r
{\r
public:\r
server();\r
- const std::vector<safe_ptr<core::video_channel>> get_channels() const;\r
+ const std::vector<spl::shared_ptr<core::video_channel>> channels() const;\r
+\r
+ // monitor::observable\r
+\r
+ virtual void subscribe(const monitor::observable::observer_ptr& o) override;\r
+ virtual void unsubscribe(const monitor::observable::observer_ptr& o) override;\r
private:\r
- struct implementation;\r
- safe_ptr<implementation> impl_;\r
+ struct impl;\r
+ spl::shared_ptr<impl> impl_;\r
};\r
\r
}
\ No newline at end of file