]> git.sesse.net Git - casparcg/commitdiff
2.1.0: amcp: ImmidiatelyAndClear no longer make sense, removed.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 10 Mar 2012 12:08:18 +0000 (12:08 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 10 Mar 2012 12:08:18 +0000 (12:08 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@2594 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

protocol/amcp/AMCPCommand.h
protocol/amcp/AMCPCommandQueue.cpp
protocol/amcp/AMCPCommandsImpl.cpp
protocol/amcp/AMCPCommandsImpl.h
protocol/amcp/AMCPProtocolStrategy.cpp

index 8d4eb9a097208a39daf08463e2d47eb3f596e40b..d9028b2680d45c13820019adb05edacb8fe89c00 100644 (file)
 \r
 namespace caspar { namespace protocol {\r
 namespace amcp {\r
-\r
-       enum AMCPCommandScheduling\r
-       {\r
-               Default = 0,\r
-               AddToQueue,\r
-               ImmediatelyAndClear\r
-       };\r
-\r
+       \r
        class AMCPCommand\r
        {\r
                AMCPCommand(const AMCPCommand&);\r
@@ -48,7 +41,6 @@ namespace amcp {
                virtual bool Execute() = 0;\r
 \r
                virtual bool NeedChannel() = 0;\r
-               virtual AMCPCommandScheduling GetDefaultScheduling() = 0;\r
                virtual int GetMinimumParameters() = 0;\r
 \r
                void SendReply();\r
@@ -72,14 +64,8 @@ namespace amcp {
 \r
                virtual void Clear();\r
 \r
-               AMCPCommandScheduling GetScheduling()\r
-               {\r
-                       return scheduling_ == Default ? GetDefaultScheduling() : scheduling_;\r
-               }\r
-\r
                virtual std::wstring print() const = 0;\r
 \r
-               void SetScheduling(AMCPCommandScheduling s){scheduling_ = s;}\r
                void SetReplyString(const std::wstring& str){replyString_ = str;}\r
 \r
        protected:\r
@@ -92,13 +78,12 @@ namespace amcp {
                IO::ClientInfoPtr pClientInfo_;\r
                std::shared_ptr<core::video_channel> pChannel_;\r
                std::vector<spl::shared_ptr<core::video_channel>> channels_;\r
-               AMCPCommandScheduling scheduling_;\r
                std::wstring replyString_;\r
        };\r
 \r
        typedef std::tr1::shared_ptr<AMCPCommand> AMCPCommandPtr;\r
 \r
-       template<bool TNeedChannel, AMCPCommandScheduling TScheduling, int TMinParameters>\r
+       template<bool TNeedChannel,int TMinParameters>\r
        class AMCPCommandBase : public AMCPCommand\r
        {\r
        public:\r
@@ -111,7 +96,6 @@ namespace amcp {
                }\r
 \r
                virtual bool NeedChannel(){return TNeedChannel;}                \r
-               virtual AMCPCommandScheduling GetDefaultScheduling(){return TScheduling;}\r
                virtual int GetMinimumParameters(){return TMinParameters;}\r
        protected:\r
                ~AMCPCommandBase(){}\r
index 008c002835fc4c78e4e8788354378418503715b4..1a50eae1686e265a158d4a1d795e2712a0987e0a 100644 (file)
@@ -23,6 +23,8 @@
 \r
 #include "AMCPCommandQueue.h"\r
 \r
+#include <boost/timer.hpp>\r
+\r
 namespace caspar { namespace protocol { namespace amcp {\r
        \r
 AMCPCommandQueue::AMCPCommandQueue() \r
@@ -38,10 +40,7 @@ void AMCPCommandQueue::AddCommand(AMCPCommandPtr pCurrentCommand)
 {\r
        if(!pCurrentCommand)\r
                return;\r
-\r
-       if(pCurrentCommand->GetScheduling() == ImmediatelyAndClear)\r
-               executor_.clear();\r
-\r
+       \r
        if(executor_.size() > 128)\r
        {\r
                try\r
@@ -63,10 +62,11 @@ void AMCPCommandQueue::AddCommand(AMCPCommandPtr pCurrentCommand)
                {\r
                        try\r
                        {\r
+                               boost::timer timer;\r
                                if(pCurrentCommand->Execute()) \r
-                                       CASPAR_LOG(debug) << "Executed command: " << pCurrentCommand->print();\r
+                                       CASPAR_LOG(debug) << "Executed command: " << pCurrentCommand->print() << " " << timer.elapsed();\r
                                else \r
-                                       CASPAR_LOG(warning) << "Failed to execute command: " << pCurrentCommand->print();\r
+                                       CASPAR_LOG(warning) << "Failed to execute command: " << pCurrentCommand->print() << " " << timer.elapsed();\r
                        }\r
                        catch(...)\r
                        {\r
index 92fb6ba46cbec2ac85ff178fb29b274e7eb19067..405bbc33197f1e793518d6845420651ef5758019 100644 (file)
@@ -186,7 +186,7 @@ std::wstring ListTemplates()
 \r
 namespace amcp {\r
        \r
-AMCPCommand::AMCPCommand() : channelIndex_(0), scheduling_(Default), layerIndex_(-1)\r
+AMCPCommand::AMCPCommand() : channelIndex_(0), layerIndex_(-1)\r
 {}\r
 \r
 void AMCPCommand::SendReply()\r
index d4997fdef03f3681838d457284d732ce5a141fa0..19d801e483b321e1ff4d15aadd7140224e947308 100644 (file)
@@ -32,97 +32,97 @@ std::wstring ListTemplates();
 \r
 namespace amcp {\r
        \r
-class ChannelGridCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class ChannelGridCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"ChannelGridCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class DiagnosticsCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class DiagnosticsCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"DiagnosticsCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class CallCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class CallCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"CallCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class MixerCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class MixerCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"MixerCommand";}\r
        bool DoExecute();\r
 };\r
        \r
-class AddCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class AddCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"AddCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class RemoveCommand : public AMCPCommandBase<true, AddToQueue, 0>\r
+class RemoveCommand : public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"RemoveCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class SwapCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class SwapCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"SwapCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class LoadCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class LoadCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"LoadCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class LoadbgCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class LoadbgCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"LoadbgCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class PlayCommand: public AMCPCommandBase<true, AddToQueue, 0>\r
+class PlayCommand: public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"PlayCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class PauseCommand: public AMCPCommandBase<true, AddToQueue, 0>\r
+class PauseCommand: public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"PauseCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class StopCommand : public AMCPCommandBase<true, AddToQueue, 0>\r
+class StopCommand : public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"StopCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class ClearCommand : public AMCPCommandBase<true, ImmediatelyAndClear, 0>\r
+class ClearCommand : public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"ClearCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class PrintCommand : public AMCPCommandBase<true, AddToQueue, 0>\r
+class PrintCommand : public AMCPCommandBase<true, 0>\r
 {\r
        std::wstring print() const { return L"PrintCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class LogCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class LogCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"LogCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class CGCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
+class CGCommand : public AMCPCommandBase<true, 1>\r
 {\r
        std::wstring print() const { return L"CGCommand";}\r
        bool DoExecute();\r
@@ -139,7 +139,7 @@ class CGCommand : public AMCPCommandBase<true, AddToQueue, 1>
        bool DoExecuteInfo();\r
 };\r
 \r
-class DataCommand : public AMCPCommandBase<false, AddToQueue, 1>\r
+class DataCommand : public AMCPCommandBase<false, 1>\r
 {\r
        std::wstring print() const { return L"DataCommand";}\r
        bool DoExecute();\r
@@ -148,25 +148,25 @@ class DataCommand : public AMCPCommandBase<false, AddToQueue, 1>
        bool DoExecuteList();\r
 };\r
 \r
-class ClsCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class ClsCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"ClsCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class TlsCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class TlsCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"TlsCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class CinfCommand : public AMCPCommandBase<false, AddToQueue, 1>\r
+class CinfCommand : public AMCPCommandBase<false, 1>\r
 {\r
        std::wstring print() const { return L"CinfCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class InfoCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class InfoCommand : public AMCPCommandBase<false, 0>\r
 {\r
 public:\r
        std::wstring print() const { return L"InfoCommand";}\r
@@ -176,19 +176,19 @@ private:
        const std::vector<spl::shared_ptr<core::video_channel>>& channels_;\r
 };\r
 \r
-class VersionCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class VersionCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"VersionCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class ByeCommand : public AMCPCommandBase<false, AddToQueue, 0>\r
+class ByeCommand : public AMCPCommandBase<false, 0>\r
 {\r
        std::wstring print() const { return L"ByeCommand";}\r
        bool DoExecute();\r
 };\r
 \r
-class SetCommand : public AMCPCommandBase<true, AddToQueue, 2>\r
+class SetCommand : public AMCPCommandBase<true, 2>\r
 {\r
        std::wstring print() const { return L"SetCommand";}\r
        bool DoExecute();\r
index d5decda29ea175b1ca9696bb0b2f3a76a399bbcf..b3da7020402a3aa50cbff364ed0b17ab0648ac85 100644 (file)
@@ -191,10 +191,10 @@ AMCPCommandPtr AMCPProtocolStrategy::InterpretCommandString(const std::wstring&
                                if(commandSwitch.size() > 0) {\r
                                        transform(commandSwitch.begin(), commandSwitch.end(), commandSwitch.begin(), toupper);\r
 \r
-                                       if(commandSwitch == TEXT("/APP"))\r
-                                               pCommand->SetScheduling(AddToQueue);\r
-                                       else if(commandSwitch  == TEXT("/IMMF"))\r
-                                               pCommand->SetScheduling(ImmediatelyAndClear);\r
+                                       //if(commandSwitch == TEXT("/APP"))\r
+                                       //      pCommand->SetScheduling(AddToQueue);\r
+                                       //else if(commandSwitch  == TEXT("/IMMF"))\r
+                                       //      pCommand->SetScheduling(ImmediatelyAndClear);\r
                                }\r
 \r
                                if(pCommand->NeedChannel())\r