]> git.sesse.net Git - casparcg/blobdiff - protocol/util/ClientInfo.h
[streaming_consumer] Default to pcm_s24le for containers supporting it instead of...
[casparcg] / protocol / util / ClientInfo.h
index f28a9cc71523cbbe7dfafc48d1f7bef9770ecc1a..1aa2ae6a09cabb1f7619b1f717b4ef0fc725f4d3 100644 (file)
 #include <iostream>
 
 #include <common/log.h>
+#include "protocol_strategy.h"
 
 namespace caspar { namespace IO {
 
-class ClientInfo 
-{
-protected:
-       ClientInfo(){}
-
-public:
-       virtual ~ClientInfo(){}
-
-       virtual void Send(const std::wstring& data) = 0;
-       virtual void Disconnect() = 0;
-       virtual std::wstring print() const = 0;
-
-       std::wstring            currentMessage_;
-};
-typedef std::shared_ptr<ClientInfo> ClientInfoPtr;
+typedef spl::shared_ptr<client_connection<wchar_t>> ClientInfoPtr;
 
-struct ConsoleClientInfo : public caspar::IO::ClientInfo 
+struct ConsoleClientInfo : public client_connection<wchar_t>
 {
-       void Send(const std::wstring& data)
+       void send(std::wstring&& data) override
        {
-               std::wcout << (L"#" + caspar::log::replace_nonprintable_copy(data, L'?'));
+               std::wcout << (L"#" + caspar::log::replace_nonprintable_copy(data, L'?')) << std::flush;
        }
-       void Disconnect(){}
-       virtual std::wstring print() const {return L"Console";}
+       void disconnect() override {}
+       std::wstring address() const override { return L"Console"; }
+       void add_lifecycle_bound_object(const std::wstring& key, const std::shared_ptr<void>& lifecycle_bound) override {}
+       std::shared_ptr<void> remove_lifecycle_bound_object(const std::wstring& key) override { return std::shared_ptr<void>(); }
 };
 
 }}