]> git.sesse.net Git - casparcg/commitdiff
Applied patch which adds support for creating directories that does not exist with...
authorhellgore <hellgore@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 29 Nov 2012 13:46:19 +0000 (13:46 +0000)
committerhellgore <hellgore@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 29 Nov 2012 13:46:19 +0000 (13:46 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@3585 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

CHANGES.txt
README.txt
casparcg.sln
protocol/amcp/AMCPCommandsImpl.cpp
protocol/amcp/AMCPCommandsImpl.h

index 95df2ff475ff9a9c01997667726635943ddfcb10..10b336592bf32003f8f0a48d3b66b7595b5d095e 100644 (file)
@@ -6,6 +6,13 @@ Stage
 \r
   o Fixed dead-lock that can occur with multiple mixer tweens.\r
 \r
+AMCP\r
+----\r
+\r
+  o DATA STORE now supports creating folders of path specified if they does not\r
+    exist.\r
+  o DATA REMOVE command was added.\r
+\r
 CasparCG 2.0.3 Alpha (w.r.t 2.0 Stable)\r
 =======================================\r
 \r
index a4ce68692407fbc04c67bc04a1b33ef7290541e6..2eb0d29c2a5a598a928e31016de6bc54b75131d1 100644 (file)
@@ -118,3 +118,4 @@ Robert      Nagy            (robert.nagy@dfindredpatch.se, ronag89@gmail.com)
 Helge   Norberg         (helge.norberg@svt.se)\r
 Thomas  R. Kaltz III\r
 Olle    Soprani\r
+Jeff    ?\r
index 87aad8ef65960ee7398c353ab1aa02644d3c5438..d634fe317ce0537f297001bcf6ac66f8a8e5c394 100644 (file)
@@ -10,7 +10,7 @@ EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "documentation", "documentation", "{32079541-68ED-4319-91FB-0FF041642679}"\r
        ProjectSection(SolutionItems) = preProject\r
                CHANGES.txt = CHANGES.txt\r
-               COPYING.txt = COPYING.txt\r
+               LICENSE.txt = LICENSE.txt\r
                README.txt = README.txt\r
        EndProjectSection\r
 EndProject\r
index 3b44a061d1899448e013a93de655d78c1b7dac62..6377ddd503ae8ba2c8674efebcc389a02d837348 100644 (file)
@@ -1276,6 +1276,8 @@ bool DataCommand::DoExecute()
                return DoExecuteStore();\r
        else if(command == TEXT("RETRIEVE"))\r
                return DoExecuteRetrieve();\r
+       else if(command == TEXT("REMOVE"))\r
+               return DoExecuteRemove();\r
        else if(command == TEXT("LIST"))\r
                return DoExecuteList();\r
 \r
@@ -1295,6 +1297,12 @@ bool DataCommand::DoExecuteStore()
        filename.append(_parameters[1]);\r
        filename.append(TEXT(".ftd"));\r
 \r
+       auto data_path = boost::filesystem::wpath(\r
+                       boost::filesystem::wpath(filename).parent_path());\r
+       \r
+       if(!boost::filesystem::exists(data_path))\r
+               boost::filesystem::create_directories(data_path);\r
+\r
        std::wofstream datafile(filename.c_str());\r
 \r
        if(!datafile) \r
@@ -1354,6 +1362,35 @@ bool DataCommand::DoExecuteRetrieve()
        return true;\r
 }\r
 \r
+bool DataCommand::DoExecuteRemove() \r
+{ \r
+       if (_parameters.size() < 2) \r
+       {\r
+               SetReplyString(TEXT("402 DATA REMOVE ERROR\r\n"));\r
+               return false;\r
+       }\r
+\r
+       std::wstring filename = env::data_folder();\r
+       filename.append(_parameters[1]);\r
+       filename.append(TEXT(".ftd"));\r
+\r
+       if (!boost::filesystem::exists(filename)) \r
+       {\r
+               SetReplyString(TEXT("404 DATA REMOVE ERROR\r\n"));\r
+               return false;\r
+       }\r
+\r
+       if (!boost::filesystem::remove(filename))\r
+       {\r
+               SetReplyString(TEXT("403 DATA REMOVE ERROR\r\n"));\r
+               return false;\r
+       }\r
+\r
+       SetReplyString(TEXT("201 DATA REMOVE OK\r\n"));\r
+\r
+       return true;\r
+}\r
+\r
 bool DataCommand::DoExecuteList() \r
 {\r
        std::wstringstream replyString;\r
index e8e87071dd15d7172d77d0870482fdb2f789d4a4..0204c98fd8e82643b3c4c734a1756abcd6091f47 100644 (file)
@@ -145,6 +145,7 @@ class DataCommand : public AMCPCommandBase<false, AddToQueue, 1>
        bool DoExecute();\r
        bool DoExecuteStore();\r
        bool DoExecuteRetrieve();\r
+       bool DoExecuteRemove();\r
        bool DoExecuteList();\r
 };\r
 \r