]> git.sesse.net Git - casparcg/blobdiff - shell/server.h
[polling_filesystem_monitor] Fixed bug where unallocated memory could be read by...
[casparcg] / shell / server.h
index 987043c4a93b5ac1f09437b3ad37667b2b3d1ab5..a8241813915836d0b5af3e223802fba288feb01a 100644 (file)
 #pragma once
 
 #include <common/memory.h>
+#include <common/future_fwd.h>
 
 #include <core/monitor/monitor.h>
+#include <core/fwd.h>
 
 #include <boost/noncopyable.hpp>
 
 #include <vector>
 
-namespace caspar {
+FORWARD3(caspar, protocol, amcp, class amcp_command_repository);
 
-namespace core {
-       class video_channel;
-       class thumbnail_generator;
-}
+namespace caspar {
 
-class server sealed : public monitor::observable
-                                       , boost::noncopyable
+class server final : public boost::noncopyable
 {
 public:
-       server();
-       const std::vector<spl::shared_ptr<core::video_channel>> channels() const;
-       std::shared_ptr<core::thumbnail_generator> get_thumbnail_generator() const;
-       // monitor::observable
+       explicit server(std::promise<bool>& shutdown_server_now);
+       void start();
+       spl::shared_ptr<core::system_info_provider_repository> get_system_info_provider_repo() const;
+       spl::shared_ptr<protocol::amcp::amcp_command_repository> get_amcp_command_repository() 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_;