summaryrefslogtreecommitdiff
path: root/glib/src/spawn.hg
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@src.gnome.org>2003-01-07 16:59:16 +0000
committerMurray Cumming <murrayc@src.gnome.org>2003-01-07 16:59:16 +0000
commit78e5bf1313f67e4cbc67fe01a408d27de7383abd (patch)
treef832445dad23cd0dcc2a116fcc1469d35316d995 /glib/src/spawn.hg
downloadglibmm-78e5bf1313f67e4cbc67fe01a408d27de7383abd.tar.gz
Initial revision
Diffstat (limited to 'glib/src/spawn.hg')
-rw-r--r--glib/src/spawn.hg105
1 files changed, 105 insertions, 0 deletions
diff --git a/glib/src/spawn.hg b/glib/src/spawn.hg
new file mode 100644
index 00000000..9f214d44
--- /dev/null
+++ b/glib/src/spawn.hg
@@ -0,0 +1,105 @@
+/* $Id$ */
+
+/* Copyright (C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_DEFS(glibmm,glib)
+
+#include <string>
+#include <sigc++/sigc++.h>
+#include <glibmm/arrayhandle.h>
+#include <glibmm/error.h>
+
+#include <glibmmconfig.h>
+GTKMM_USING_STD(string)
+
+
+namespace Glib
+{
+
+_WRAP_ENUM(SpawnFlags, GSpawnFlags, NO_GTYPE)
+
+/** @defgroup Spawn Spawning Processes
+ * Process launching with fork()/exec().
+ * @{
+ */
+
+/** Exception class for errors occuring when spawning processes.
+ */
+_WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#)
+
+
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ int* child_pid = 0,
+ int* standard_input = 0,
+ int* standard_output = 0,
+ int* standard_error = 0);
+
+void spawn_async_with_pipes(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ int* child_pid = 0,
+ int* standard_input = 0,
+ int* standard_output = 0,
+ int* standard_error = 0);
+
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ int* child_pid = 0);
+
+void spawn_async(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ int* child_pid = 0);
+
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ const Glib::ArrayHandle<std::string>& envp,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ std::string* standard_output = 0,
+ std::string* standard_error = 0,
+ int* exit_status = 0);
+
+void spawn_sync(const std::string& working_directory,
+ const Glib::ArrayHandle<std::string>& argv,
+ SpawnFlags flags = SpawnFlags(0),
+ const SigC::Slot0<void>& child_setup = SigC::Slot0<void>(),
+ std::string* standard_output = 0,
+ std::string* standard_error = 0,
+ int* exit_status = 0);
+
+void spawn_command_line_async(const std::string& command_line);
+
+void spawn_command_line_sync(const std::string& command_line,
+ std::string* standard_output = 0,
+ std::string* standard_error = 0,
+ int* exit_status = 0);
+
+/** @} group Spawn */
+
+} // namespace Glib
+