]> git.sesse.net Git - casparcg/blobdiff - shell/server.h
* Replaced boost::timer with caspar::timer because of too low resolution on Linux...
[casparcg] / shell / server.h
index 987043c4a93b5ac1f09437b3ad37667b2b3d1ab5..99e5b096f2ec6a6547432dd46d0792c4776f7003 100644 (file)
@@ -22,6 +22,7 @@
 #pragma once
 
 #include <common/memory.h>
+#include <common/future_fwd.h>
 
 #include <core/monitor/monitor.h>
 
@@ -34,19 +35,23 @@ namespace caspar {
 namespace core {
        class video_channel;
        class thumbnail_generator;
+       struct media_info_repository;
+       class system_info_provider_repository;
+       class cg_producer_registry;
 }
 
-class server sealed : public monitor::observable
-                                       , boost::noncopyable
+class server final : public boost::noncopyable
 {
 public:
-       server();
+       explicit server(std::promise<bool>& shutdown_server_now);
+       void start();
        const std::vector<spl::shared_ptr<core::video_channel>> channels() const;
        std::shared_ptr<core::thumbnail_generator> get_thumbnail_generator() const;
-       // monitor::observable
+       spl::shared_ptr<core::media_info_repository> get_media_info_repo() const;
+       spl::shared_ptr<core::system_info_provider_repository> get_system_info_provider_repo() const;
+       spl::shared_ptr<core::cg_producer_registry> get_cg_registry() const;
 
-       void subscribe(const monitor::observable::observer_ptr& o) override;
-       void unsubscribe(const monitor::observable::observer_ptr& o) override;
+       core::monitor::subject& monitor_output();
 private:
        struct impl;
        spl::shared_ptr<impl> impl_;