(root)/
glib-2.79.0/
gio/
gsubprocess.h
       1  /* GIO - GLib Input, Output and Streaming Library
       2   *
       3   * Copyright (C) 2012 Colin Walters <walters@verbum.org>
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   *
       7   * This library is free software; you can redistribute it and/or
       8   * modify it under the terms of the GNU Lesser General Public
       9   * License as published by the Free Software Foundation; either
      10   * version 2.1 of the License, or (at your option) any later version.
      11   *
      12   * This library is distributed in the hope that it will be useful,
      13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15   * Lesser General Public License for more details.
      16   *
      17   * You should have received a copy of the GNU Lesser General
      18   * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      19   *
      20   * Author: Colin Walters <walters@verbum.org>
      21   */
      22  
      23  #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
      24  #error "Only <gio/gio.h> can be included directly."
      25  #endif
      26  
      27  #ifndef __G_SUBPROCESS_H__
      28  #define __G_SUBPROCESS_H__
      29  
      30  #include <gio/giotypes.h>
      31  
      32  G_BEGIN_DECLS
      33  
      34  #define G_TYPE_SUBPROCESS         (g_subprocess_get_type ())
      35  #define G_SUBPROCESS(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SUBPROCESS, GSubprocess))
      36  #define G_IS_SUBPROCESS(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SUBPROCESS))
      37  
      38  GIO_AVAILABLE_IN_2_40
      39  GType            g_subprocess_get_type                  (void) G_GNUC_CONST;
      40  
      41  /**** Core API ****/
      42  
      43  GIO_AVAILABLE_IN_2_40
      44  GSubprocess *    g_subprocess_new                       (GSubprocessFlags        flags,
      45                                                           GError                **error,
      46                                                           const gchar            *argv0,
      47                                                           ...) G_GNUC_NULL_TERMINATED;
      48  GIO_AVAILABLE_IN_2_40
      49  GSubprocess *    g_subprocess_newv                      (const gchar * const  *argv,
      50                                                           GSubprocessFlags      flags,
      51                                                           GError              **error);
      52  
      53  GIO_AVAILABLE_IN_2_40
      54  GOutputStream *  g_subprocess_get_stdin_pipe            (GSubprocess          *subprocess);
      55  
      56  GIO_AVAILABLE_IN_2_40
      57  GInputStream *   g_subprocess_get_stdout_pipe           (GSubprocess          *subprocess);
      58  
      59  GIO_AVAILABLE_IN_2_40
      60  GInputStream *   g_subprocess_get_stderr_pipe           (GSubprocess          *subprocess);
      61  
      62  GIO_AVAILABLE_IN_2_40
      63  const gchar *    g_subprocess_get_identifier            (GSubprocess          *subprocess);
      64  
      65  #ifdef G_OS_UNIX
      66  GIO_AVAILABLE_IN_2_40
      67  void             g_subprocess_send_signal               (GSubprocess          *subprocess,
      68                                                           gint                  signal_num);
      69  #endif
      70  
      71  GIO_AVAILABLE_IN_2_40
      72  void             g_subprocess_force_exit                (GSubprocess          *subprocess);
      73  
      74  GIO_AVAILABLE_IN_2_40
      75  gboolean         g_subprocess_wait                      (GSubprocess          *subprocess,
      76                                                           GCancellable         *cancellable,
      77                                                           GError              **error);
      78  
      79  GIO_AVAILABLE_IN_2_40
      80  void             g_subprocess_wait_async                (GSubprocess          *subprocess,
      81                                                           GCancellable         *cancellable,
      82                                                           GAsyncReadyCallback   callback,
      83                                                           gpointer              user_data);
      84  
      85  GIO_AVAILABLE_IN_2_40
      86  gboolean         g_subprocess_wait_finish               (GSubprocess          *subprocess,
      87                                                           GAsyncResult         *result,
      88                                                           GError              **error);
      89  
      90  GIO_AVAILABLE_IN_2_40
      91  gboolean         g_subprocess_wait_check                (GSubprocess          *subprocess,
      92                                                           GCancellable         *cancellable,
      93                                                           GError              **error);
      94  
      95  GIO_AVAILABLE_IN_2_40
      96  void             g_subprocess_wait_check_async          (GSubprocess          *subprocess,
      97                                                           GCancellable         *cancellable,
      98                                                           GAsyncReadyCallback   callback,
      99                                                           gpointer              user_data);
     100  
     101  GIO_AVAILABLE_IN_2_40
     102  gboolean         g_subprocess_wait_check_finish         (GSubprocess          *subprocess,
     103                                                           GAsyncResult         *result,
     104                                                           GError              **error);
     105  
     106  
     107  GIO_AVAILABLE_IN_2_40
     108  gint             g_subprocess_get_status                (GSubprocess          *subprocess);
     109  
     110  GIO_AVAILABLE_IN_2_40
     111  gboolean         g_subprocess_get_successful            (GSubprocess          *subprocess);
     112  
     113  GIO_AVAILABLE_IN_2_40
     114  gboolean         g_subprocess_get_if_exited             (GSubprocess          *subprocess);
     115  
     116  GIO_AVAILABLE_IN_2_40
     117  gint             g_subprocess_get_exit_status           (GSubprocess          *subprocess);
     118  
     119  GIO_AVAILABLE_IN_2_40
     120  gboolean         g_subprocess_get_if_signaled           (GSubprocess          *subprocess);
     121  
     122  GIO_AVAILABLE_IN_2_40
     123  gint             g_subprocess_get_term_sig              (GSubprocess          *subprocess);
     124  
     125  GIO_AVAILABLE_IN_2_40
     126  gboolean         g_subprocess_communicate               (GSubprocess          *subprocess,
     127                                                           GBytes               *stdin_buf,
     128                                                           GCancellable         *cancellable,
     129                                                           GBytes              **stdout_buf,
     130                                                           GBytes              **stderr_buf,
     131                                                           GError              **error);
     132  GIO_AVAILABLE_IN_2_40
     133  void            g_subprocess_communicate_async          (GSubprocess          *subprocess,
     134                                                           GBytes               *stdin_buf,
     135                                                           GCancellable         *cancellable,
     136                                                           GAsyncReadyCallback   callback,
     137                                                           gpointer              user_data);
     138  
     139  GIO_AVAILABLE_IN_2_40
     140  gboolean        g_subprocess_communicate_finish         (GSubprocess          *subprocess,
     141                                                           GAsyncResult         *result,
     142                                                           GBytes              **stdout_buf,
     143                                                           GBytes              **stderr_buf,
     144                                                           GError              **error);
     145  
     146  GIO_AVAILABLE_IN_2_40
     147  gboolean         g_subprocess_communicate_utf8          (GSubprocess          *subprocess,
     148                                                           const char           *stdin_buf,
     149                                                           GCancellable         *cancellable,
     150                                                           char                **stdout_buf,
     151                                                           char                **stderr_buf,
     152                                                           GError              **error);
     153  GIO_AVAILABLE_IN_2_40
     154  void            g_subprocess_communicate_utf8_async     (GSubprocess          *subprocess,
     155                                                           const char           *stdin_buf,
     156                                                           GCancellable         *cancellable,
     157                                                           GAsyncReadyCallback   callback,
     158                                                           gpointer              user_data);
     159  
     160  GIO_AVAILABLE_IN_2_40
     161  gboolean        g_subprocess_communicate_utf8_finish    (GSubprocess          *subprocess,
     162                                                           GAsyncResult         *result,
     163                                                           char                **stdout_buf,
     164                                                           char                **stderr_buf,
     165                                                           GError              **error);
     166  
     167  G_END_DECLS
     168  
     169  #endif /* __G_SUBPROCESS_H__ */