]> git.sesse.net Git - casparcg/blobdiff - shell/server.h
2.1.0: changed "const_array" and "mutable_array" into generic "array" with const...
[casparcg] / shell / server.h
index d73088611735bcd8e9bda790f9bb09f195381dba..9e93dbc6c7f9585cf056d663092fe5d1bf7970f2 100644 (file)
@@ -1,28 +1,29 @@
 /*\r
-* copyright (c) 2010 Sveriges Television AB <info@casparcg.com>\r
+* Copyright (c) 2011 Sveriges Television AB <info@casparcg.com>\r
 *\r
-*  This file is part of CasparCG.\r
+* This file is part of CasparCG (www.casparcg.com).\r
 *\r
-*    CasparCG is free software: you can redistribute it and/or modify\r
-*    it under the terms of the GNU General Public License as published by\r
-*    the Free Software Foundation, either version 3 of the License, or\r
-*    (at your option) any later version.\r
+* CasparCG is free software: you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation, either version 3 of the License, or\r
+* (at your option) any later version.\r
 *\r
-*    CasparCG is distributed in the hope that it will be useful,\r
-*    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-*    GNU General Public License for more details.\r
-\r
-*    You should have received a copy of the GNU General Public License\r
-*    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
+* CasparCG is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+* GNU General Public License for more details.\r
+*\r
+* You should have received a copy of the GNU General Public License\r
+* along with CasparCG. If not, see <http://www.gnu.org/licenses/>.\r
 *\r
+* Author: Robert Nagy, ronag89@gmail.com\r
 */\r
 \r
 #pragma once\r
 \r
-#include <core/channel.h>\r
+#include <common/spl/memory.h>\r
 \r
-#include <common/exception/exceptions.h>\r
+#include <core/monitor/monitor.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 \r
 \r
 namespace caspar {\r
 \r
-std::vector<safe_ptr<core::channel>> initialize_channels();\r
-       \r
-struct invalid_bootstrapper : virtual boost::exception, virtual std::exception {};\r
+namespace core {\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<spl::shared_ptr<core::video_channel>> channels() const;\r
 \r
-       const std::vector<safe_ptr<core::channel>> get_channels() const;\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
-       std::shared_ptr<implementation> impl_;\r
+       struct impl;\r
+       spl::shared_ptr<impl> impl_;\r
 };\r
 \r
 }
\ No newline at end of file