(root)/
glib-2.79.0/
gio/
gunixfdlist.h
       1  /* GIO - GLib Input, Output and Streaming Library
       2   *
       3   * Copyright © 2009 Codethink Limited
       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   * Authors: Ryan Lortie <desrt@desrt.ca>
      21   */
      22  
      23  #ifndef __G_UNIX_FD_LIST_H__
      24  #define __G_UNIX_FD_LIST_H__
      25  
      26  #include <gio/gio.h>
      27  
      28  G_BEGIN_DECLS
      29  
      30  #define G_TYPE_UNIX_FD_LIST                                 (g_unix_fd_list_get_type ())
      31  #define G_UNIX_FD_LIST(inst)                                (G_TYPE_CHECK_INSTANCE_CAST ((inst),                     \
      32                                                               G_TYPE_UNIX_FD_LIST, GUnixFDList))
      33  #define G_UNIX_FD_LIST_CLASS(class)                         (G_TYPE_CHECK_CLASS_CAST ((class),                       \
      34                                                               G_TYPE_UNIX_FD_LIST, GUnixFDListClass))
      35  #define G_IS_UNIX_FD_LIST(inst)                             (G_TYPE_CHECK_INSTANCE_TYPE ((inst),                     \
      36                                                               G_TYPE_UNIX_FD_LIST))
      37  #define G_IS_UNIX_FD_LIST_CLASS(class)                      (G_TYPE_CHECK_CLASS_TYPE ((class),                       \
      38                                                               G_TYPE_UNIX_FD_LIST))
      39  #define G_UNIX_FD_LIST_GET_CLASS(inst)                      (G_TYPE_INSTANCE_GET_CLASS ((inst),                      \
      40                                                               G_TYPE_UNIX_FD_LIST, GUnixFDListClass))
      41  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixFDList, g_object_unref)
      42  
      43  typedef struct _GUnixFDListPrivate                       GUnixFDListPrivate;
      44  typedef struct _GUnixFDListClass                         GUnixFDListClass;
      45  
      46  struct _GUnixFDListClass
      47  {
      48    GObjectClass parent_class;
      49  
      50    /*< private >*/
      51  
      52    /* Padding for future expansion */
      53    void (*_g_reserved1) (void);
      54    void (*_g_reserved2) (void);
      55    void (*_g_reserved3) (void);
      56    void (*_g_reserved4) (void);
      57    void (*_g_reserved5) (void);
      58  };
      59  
      60  struct _GUnixFDList
      61  {
      62    GObject parent_instance;
      63    GUnixFDListPrivate *priv;
      64  };
      65  
      66  GIO_AVAILABLE_IN_ALL
      67  GType                   g_unix_fd_list_get_type                         (void) G_GNUC_CONST;
      68  GIO_AVAILABLE_IN_ALL
      69  GUnixFDList *           g_unix_fd_list_new                              (void);
      70  GIO_AVAILABLE_IN_ALL
      71  GUnixFDList *           g_unix_fd_list_new_from_array                   (const gint   *fds,
      72                                                                           gint          n_fds);
      73  
      74  GIO_AVAILABLE_IN_ALL
      75  gint                    g_unix_fd_list_append                           (GUnixFDList  *list,
      76                                                                           gint          fd,
      77                                                                           GError      **error);
      78  
      79  GIO_AVAILABLE_IN_ALL
      80  gint                    g_unix_fd_list_get_length                       (GUnixFDList  *list);
      81  
      82  GIO_AVAILABLE_IN_ALL
      83  gint                    g_unix_fd_list_get                              (GUnixFDList  *list,
      84                                                                           gint          index_,
      85                                                                           GError      **error);
      86  
      87  GIO_AVAILABLE_IN_ALL
      88  const gint *            g_unix_fd_list_peek_fds                         (GUnixFDList  *list,
      89                                                                           gint         *length);
      90  
      91  GIO_AVAILABLE_IN_ALL
      92  gint *                  g_unix_fd_list_steal_fds                        (GUnixFDList  *list,
      93                                                                           gint         *length);
      94  
      95  G_END_DECLS
      96  
      97  #endif /* __G_UNIX_FD_LIST_H__ */