summaryrefslogtreecommitdiff
path: root/plugins/New_GPG/src/include/boost/process/executor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/New_GPG/src/include/boost/process/executor.hpp')
-rw-r--r--plugins/New_GPG/src/include/boost/process/executor.hpp176
1 files changed, 176 insertions, 0 deletions
diff --git a/plugins/New_GPG/src/include/boost/process/executor.hpp b/plugins/New_GPG/src/include/boost/process/executor.hpp
new file mode 100644
index 0000000000..905d7f84cc
--- /dev/null
+++ b/plugins/New_GPG/src/include/boost/process/executor.hpp
@@ -0,0 +1,176 @@
+// Copyright (c) 2006, 2007 Julio M. Merino Vidal
+// Copyright (c) 2008 Ilya Sokolov, Boris Schaeling
+// Copyright (c) 2009 Boris Schaeling
+// Copyright (c) 2010 Felipe Tanus, Boris Schaeling
+// Copyright (c) 2011, 2012 Jeff Flinn, Boris Schaeling
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+/**
+ * \file boost/process/executor.hpp
+ *
+ * Defines an executor which can create child processes.
+ */
+
+#ifndef BOOST_PROCESS_EXECUTOR_HPP
+#define BOOST_PROCESS_EXECUTOR_HPP
+
+#include <boost/process/config.hpp>
+
+#include BOOST_PROCESS_PLATFORM_PROMOTE_PATH(executor)
+BOOST_PROCESS_PLATFORM_PROMOTE_NAMESPACE(executor)
+
+#if defined(BOOST_PROCESS_DOXYGEN)
+namespace boost { namespace process {
+
+/**
+ * Starts a program.
+ *
+ * boost::process::executor is a functor which calls the system functions
+ * to start a program. Before system functions are called it iterates
+ * over initializers and calls a member function passing a reference
+ * to itself as a parameter. Initializers get then a chance to setup
+ * the executor. If system functions fail boost::process::executor again
+ * iterates over initializers and calls another member function passing a
+ * reference to itself as a parameter. This gives initializers a
+ * chance to handle the error.
+ *
+ * \note Library users shouldn't need to use boost::process::executor.
+ * It is recommended to call boost::process::execute which uses
+ * boost::pocess::executor internally.
+ */
+struct executor
+{
+ /**
+ * Default constructor.
+ */
+ executor();
+
+ /**
+ * Starts a program.
+ *
+ * \tparam initializers define what and how the program is started
+ */
+ template <class Initializer, class... Initializers>
+ child operator()(const Initializer &initializer, const Initializers... &initializers);
+
+ ///\defgroup WindowsOnly Windows only.
+ ///@{
+
+ /**
+ * Program name.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPCTSTR exe;
+
+ /**
+ * Command line.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPTSTR cmd_line;
+
+ /**
+ * Process attributes.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPSECURITY_ATTRIBUTES proc_attrs;
+
+ /**
+ * Thread attributes.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPSECURITY_ATTRIBUTES thread_attrs;
+
+ /**
+ * Flag to inherit handles.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ BOOL inherit_handles;
+
+ /**
+ * Creation flags.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ DWORD creation_flags;
+
+ /**
+ * Environment variables.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPVOID env;
+
+ /**
+ * Work directory.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ LPCTSTR work_dir;
+
+ /**
+ * Startupinfo structure.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ STARTUPINFO startup_info;
+
+ /**
+ * Startupinfoex structure.
+ *
+ * If this member variable is available, \c startup_info is a reference
+ * to \c StartupInfo in STARTUPINFOEX.
+ *
+ * \remark <em>Windows Vista, Windows Server 2008 or better.</em>
+ */
+ STARTUPINFOEX startup_info_ex;
+
+ /**
+ * Process information.
+ *
+ * \c proc_info contains the result after a child process
+ * could be started successfully.
+ *
+ * \remark <em>Windows only.</em>
+ */
+ PROCESS_INFORMATION proc_info;
+
+ ///@}
+
+ ///\defgroup POSIXOnly POSIX only.
+ ///@{
+
+ /**
+ * Program name.
+ *
+ * \remark <em>POSIX only.</em>
+ */
+ const char *exe;
+
+ /**
+ * Command line arguments.
+ *
+ * \remark <em>POSIX only.</em>
+ */
+ char **cmd_line;
+
+ /**
+ * Environment variables.
+ *
+ * \remark <em>POSIX only.</em>
+ */
+ char **env;
+
+ ///@}
+};
+
+}}
+#endif
+
+#endif