<ClInclude Include="os\windows\system_info.h" />\r
<ClInclude Include="enum_class.h" />\r
<ClInclude Include="os\windows\windows.h" />\r
+ <ClInclude Include="param.h" />\r
<ClInclude Include="reactive.h" />\r
<ClInclude Include="stdafx.h" />\r
<ClInclude Include="tweener.h" />\r
<ClInclude Include="utf.h" />\r
<ClInclude Include="prec_timer.h" />\r
- <ClInclude Include="utility\move_on_copy.h" />\r
- <ClInclude Include="utility\param.h" />\r
</ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="diagnostics\graph.cpp">\r
<Filter Include="source\os\windows">\r
<UniqueIdentifier>{1f3002ae-ebb8-4195-8cf3-1a5b87822f38}</UniqueIdentifier>\r
</Filter>\r
- <Filter Include="source\utility">\r
- <UniqueIdentifier>{11860e2d-8adf-4573-956b-785e59aef2b0}</UniqueIdentifier>\r
- </Filter>\r
<Filter Include="source\memory">\r
<UniqueIdentifier>{9259676d-c225-4422-a50e-30d152d78dc2}</UniqueIdentifier>\r
</Filter>\r
<ClInclude Include="env.h">\r
<Filter>source</Filter>\r
</ClInclude>\r
- <ClInclude Include="utility\move_on_copy.h">\r
- <Filter>source\utility</Filter>\r
- </ClInclude>\r
- <ClInclude Include="utility\param.h">\r
- <Filter>source\utility</Filter>\r
- </ClInclude>\r
<ClInclude Include="concurrency\lock.h">\r
<Filter>source\concurrency</Filter>\r
</ClInclude>\r
<ClInclude Include="concurrency\async.h">\r
<Filter>source\concurrency</Filter>\r
</ClInclude>\r
+ <ClInclude Include="param.h" />\r
</ItemGroup>\r
</Project>
\ No newline at end of file
#include "../except.h"\r
#include "../log.h"\r
#include "../enum_class.h"\r
-#include "../utility/move_on_copy.h"\r
#include "../os/windows/windows.h"\r
\r
#include <tbb/atomic.h>\r
#include <functional>\r
\r
namespace caspar {\r
+\r
+namespace detail {\r
+ \r
+template<typename T>\r
+struct move_on_copy\r
+{\r
+ move_on_copy(const move_on_copy<T>& other) : value(std::move(other.value)){}\r
+ move_on_copy(T&& value) : value(std::move(value)){}\r
+ mutable T value;\r
+};\r
+\r
+template<typename T>\r
+move_on_copy<T> make_move_on_copy(T&& value)\r
+{\r
+ return move_on_copy<T>(std::move(value));\r
+}\r
+\r
+}\r
\r
struct task_priority_def\r
{\r
BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("executor not running."));\r
\r
// Create a move on copy adaptor to avoid copying the functor into the queue, tbb::concurrent_queue does not support move semantics.\r
- auto task_adaptor = make_move_on_copy(create_task(func));\r
+ auto task_adaptor = detail::make_move_on_copy(create_task(func));\r
\r
auto future = task_adaptor.value.get_future();\r
\r
+++ /dev/null
-/*\r
-* Copyright (c) 2011 Sveriges Television AB <info@casparcg.com>\r
-*\r
-* This file is part of CasparCG (www.casparcg.com).\r
-*\r
-* CasparCG is free software: you can redistribute it and/or modify\r
-* it under the terms of the GNU General Public License as published by\r
-* the Free Software Foundation, either version 3 of the License, or\r
-* (at your option) any later version.\r
-*\r
-* CasparCG is distributed in the hope that it will be useful,\r
-* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-* GNU General Public License for more details.\r
-*\r
-* You should have received a copy of the GNU General Public License\r
-* along with CasparCG. If not, see <http://www.gnu.org/licenses/>.\r
-*\r
-* Author: Robert Nagy, ronag89@gmail.com\r
-*/\r
-\r
-#pragma once\r
-\r
-namespace caspar {\r
- \r
-template<typename T>\r
-struct move_on_copy\r
-{\r
- move_on_copy(const move_on_copy<T>& other) : value(std::move(other.value)){}\r
- move_on_copy(T&& value) : value(std::move(value)){}\r
- mutable T value;\r
-};\r
-\r
-template<typename T>\r
-move_on_copy<T> make_move_on_copy(T&& value)\r
-{\r
- return move_on_copy<T>(std::move(value));\r
-}\r
-\r
-}
\ No newline at end of file
#include <limits>\r
#include <functional>\r
#include <string>\r
+#include <type_traits>\r
#include <vector>\r
\r
#include <boost/noncopyable.hpp>\r
\r
struct frame_producer : boost::noncopyable\r
{\r
-public:\r
struct flags_def\r
{\r
enum type\r
safe_ptr<core::frame_producer> create_producer(const safe_ptr<frame_factory>&, const std::wstring& params);\r
safe_ptr<core::frame_producer> create_producer_destroy_proxy(safe_ptr<core::frame_producer> producer);\r
safe_ptr<core::frame_producer> create_producer_print_proxy(safe_ptr<core::frame_producer> producer);\r
-\r
+ \r
}}\r
#include <common/diagnostics/graph.h>\r
#include <common/except.h>\r
#include <common/log.h>\r
-#include <common/utility/param.h>\r
+#include <common/param.h>\r
\r
#include <core/mixer/gpu/write_frame.h>\r
#include <core/frame/frame_transform.h>\r
#include <common/diagnostics/graph.h>\r
#include <common/memory/safe_ptr.h>\r
#include <common/utf.h>\r
-#include <common/utility/param.h>\r
+#include <common/param.h>\r
\r
#include <boost/algorithm/string.hpp>\r
#include <boost/timer.hpp>\r
\r
#include <common/env.h>\r
#include <common/log.h>\r
-#include <common/utility/param.h>\r
+#include <common/param.h>\r
#include <common/diagnostics/graph.h>\r
\r
#include <core/video_format.h>\r