#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>(); }
};
}}