#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;
- struct media_info_repository;
-}
+namespace caspar {
class server final : public boost::noncopyable
{
public:
explicit server(std::promise<bool>& shutdown_server_now);
- const std::vector<spl::shared_ptr<core::video_channel>> channels() const;
- std::shared_ptr<core::thumbnail_generator> get_thumbnail_generator() const;
- spl::shared_ptr<core::media_info_repository> get_media_info_repo() const;
+ 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;
core::monitor::subject& monitor_output();
private: