diff options
author | Murray Cumming <murrayc@src.gnome.org> | 2003-01-07 16:59:16 +0000 |
---|---|---|
committer | Murray Cumming <murrayc@src.gnome.org> | 2003-01-07 16:59:16 +0000 |
commit | 78e5bf1313f67e4cbc67fe01a408d27de7383abd (patch) | |
tree | f832445dad23cd0dcc2a116fcc1469d35316d995 /glib/src/spawn.hg | |
download | glibmm-78e5bf1313f67e4cbc67fe01a408d27de7383abd.tar.gz |
Initial revision
Diffstat (limited to 'glib/src/spawn.hg')
-rw-r--r-- | glib/src/spawn.hg | 105 |
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 + |