]> git.sesse.net Git - casparcg/blobdiff - protocol/util/strategy_adapters.cpp
[framerate_producer] Fixed frame repeat issue that caused the first frame to be empty...
[casparcg] / protocol / util / strategy_adapters.cpp
index 086d9a15508a859df8de05330b155d476050cb57..c229d3de1589e50adddbebc22ff4aea1c27d5578 100644 (file)
@@ -24,6 +24,7 @@
 #include "strategy_adapters.h"\r
 \r
 #include <boost/locale.hpp>\r
+#include <boost/algorithm/string/replace.hpp>\r
 \r
 namespace caspar { namespace IO {\r
 \r
@@ -40,7 +41,7 @@ public:
        {\r
        }\r
 \r
-       virtual void parse(const std::basic_string<char>& data)\r
+       void parse(const std::basic_string<char>& data) override\r
        {\r
                auto utf_data = boost::locale::conv::to_utf<wchar_t>(data, codepage_);\r
 \r
@@ -58,36 +59,42 @@ public:
                : client_(client)\r
                , codepage_(codepage)\r
        {\r
-               CASPAR_LOG(info) << "from_unicode_client_connection created.";\r
        }\r
        ~from_unicode_client_connection()\r
        {\r
-               CASPAR_LOG(info) << "from_unicode_client_connection destroyed.";\r
        }\r
 \r
-       virtual void send(std::basic_string<wchar_t>&& data)\r
+       void send(std::basic_string<wchar_t>&& data) override\r
        {\r
-               auto str = boost::locale::conv::from_utf<wchar_t>(std::move(data), codepage_);\r
+               auto str = boost::locale::conv::from_utf<wchar_t>(data, codepage_);\r
 \r
                client_->send(std::move(str));\r
+\r
+               if (data.length() < 512)\r
+               {\r
+                       boost::replace_all(data, L"\n", L"\\n");\r
+                       boost::replace_all(data, L"\r", L"\\r");\r
+                       CASPAR_LOG_COMMUNICATION(info) << L"Sent message to " << client_->address() << L":" << data;\r
+               }\r
+               else\r
+                       CASPAR_LOG_COMMUNICATION(info) << L"Sent more than 512 bytes to " << client_->address();\r
        }\r
 \r
-       virtual void disconnect()\r
+       void disconnect() override\r
        {\r
                client_->disconnect();\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       std::wstring address() const override\r
        {\r
-               return client_->print();\r
+               return client_->address();\r
        }\r
 \r
-\r
-       void add_lifecycle_bound_object(const std::wstring& key, const std::shared_ptr<void>& lifecycle_bound)\r
+       void add_lifecycle_bound_object(const std::wstring& key, const std::shared_ptr<void>& lifecycle_bound) override\r
        {\r
                client_->add_lifecycle_bound_object(key, lifecycle_bound);\r
        }\r
-       std::shared_ptr<void> remove_lifecycle_bound_object(const std::wstring& key)\r
+       std::shared_ptr<void> remove_lifecycle_bound_object(const std::wstring& key) override\r
        {\r
                return client_->remove_lifecycle_bound_object(key);\r
        }\r
@@ -109,47 +116,6 @@ protocol_strategy<char>::ptr to_unicode_adapter_factory::create(
        return spl::make_shared<to_unicode_adapter>(codepage_, unicode_strategy_factory_->create(client));\r
 }\r
 \r
-/*class legacy_client_info : public ClientInfo\r
-{\r
-       client_connection<wchar_t>::ptr client_connection_;\r
-public:\r
-       legacy_client_info(const client_connection<wchar_t>::ptr& client_connection)\r
-               : client_connection_(client_connection)\r
-       {\r
-               CASPAR_LOG(info) << "legacy_client_info created.";\r
-       }\r
-\r
-       ~legacy_client_info()\r
-       {\r
-               CASPAR_LOG(info) << "legacy_client_info destroyed.";\r
-       }\r
-\r
-\r
-       virtual void Disconnect()\r
-       {\r
-               client_connection_->disconnect();\r
-       }\r
-\r
-       virtual void Send(const std::wstring& data)\r
-       {\r
-               client_connection_->send(std::wstring(data));\r
-       }\r
-\r
-       virtual std::wstring print() const \r
-       {\r
-               return client_connection_->print();\r
-       }\r
-       virtual void add_lifecycle_bound_object(const std::wstring& key, const std::shared_ptr<void>& lifecycle_bound)\r
-       {\r
-               client_connection_->add_lifecycle_bound_object(key, lifecycle_bound);\r
-       }\r
-       virtual std::shared_ptr<void> remove_lifecycle_bound_object(const std::wstring& key)\r
-       {\r
-               return client_connection_->remove_lifecycle_bound_object(key);\r
-       }\r
-\r
-};*/\r
-\r
 class legacy_strategy_adapter : public protocol_strategy<wchar_t>\r
 {\r
        ProtocolStrategyPtr strategy_;\r
@@ -161,14 +127,12 @@ public:
                : strategy_(strategy)\r
                , client_info_(client_connection)\r
        {\r
-               CASPAR_LOG(info) << "legacy_strategy_adapter created.";\r
        }\r
        ~legacy_strategy_adapter()\r
        {\r
-               CASPAR_LOG(info) << "legacy_strategy_adapter destroyed.";\r
        }\r
 \r
-       virtual void parse(const std::basic_string<wchar_t>& data)\r
+       void parse(const std::basic_string<wchar_t>& data) override\r
        {\r
                strategy_->Parse(data, client_info_);\r
        }\r