1 /* GIO - GLib Input, Output and Streaming Library 2 * 3 * Copyright © 2010 Codethink Limited 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General 16 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. 17 * 18 * Authors: Ryan Lortie <desrt@desrt.ca> 19 */ 20 21 #ifndef __G_APPLICATION_COMMAND_LINE_H__ 22 #define __G_APPLICATION_COMMAND_LINE_H__ 23 24 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) 25 #error "Only <gio/gio.h> can be included directly." 26 #endif 27 28 #include <gio/giotypes.h> 29 30 G_BEGIN_DECLS 31 32 #define G_TYPE_APPLICATION_COMMAND_LINE (g_application_command_line_get_type ()) 33 #define G_APPLICATION_COMMAND_LINE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ 34 G_TYPE_APPLICATION_COMMAND_LINE, \ 35 GApplicationCommandLine)) 36 #define G_APPLICATION_COMMAND_LINE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ 37 G_TYPE_APPLICATION_COMMAND_LINE, \ 38 GApplicationCommandLineClass)) 39 #define G_IS_APPLICATION_COMMAND_LINE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ 40 G_TYPE_APPLICATION_COMMAND_LINE)) 41 #define G_IS_APPLICATION_COMMAND_LINE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ 42 G_TYPE_APPLICATION_COMMAND_LINE)) 43 #define G_APPLICATION_COMMAND_LINE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ 44 G_TYPE_APPLICATION_COMMAND_LINE, \ 45 GApplicationCommandLineClass)) 46 47 typedef struct _GApplicationCommandLinePrivate GApplicationCommandLinePrivate; 48 typedef struct _GApplicationCommandLineClass GApplicationCommandLineClass; 49 50 struct _GApplicationCommandLine 51 { 52 /*< private >*/ 53 GObject parent_instance; 54 55 GApplicationCommandLinePrivate *priv; 56 }; 57 58 struct _GApplicationCommandLineClass 59 { 60 /*< private >*/ 61 GObjectClass parent_class; 62 63 void (* print_literal) (GApplicationCommandLine *cmdline, 64 const gchar *message); 65 void (* printerr_literal) (GApplicationCommandLine *cmdline, 66 const gchar *message); 67 GInputStream * (* get_stdin) (GApplicationCommandLine *cmdline); 68 69 gpointer padding[11]; 70 }; 71 72 GLIB_AVAILABLE_IN_ALL 73 GType g_application_command_line_get_type (void) G_GNUC_CONST; 74 75 GLIB_AVAILABLE_IN_ALL 76 gchar ** g_application_command_line_get_arguments (GApplicationCommandLine *cmdline, 77 int *argc); 78 79 GLIB_AVAILABLE_IN_2_40 80 GVariantDict * g_application_command_line_get_options_dict (GApplicationCommandLine *cmdline); 81 82 GLIB_AVAILABLE_IN_2_36 83 GInputStream * g_application_command_line_get_stdin (GApplicationCommandLine *cmdline); 84 85 GLIB_AVAILABLE_IN_ALL 86 const gchar * const * g_application_command_line_get_environ (GApplicationCommandLine *cmdline); 87 88 GLIB_AVAILABLE_IN_ALL 89 const gchar * g_application_command_line_getenv (GApplicationCommandLine *cmdline, 90 const gchar *name); 91 92 GLIB_AVAILABLE_IN_ALL 93 const gchar * g_application_command_line_get_cwd (GApplicationCommandLine *cmdline); 94 95 GLIB_AVAILABLE_IN_ALL 96 gboolean g_application_command_line_get_is_remote (GApplicationCommandLine *cmdline); 97 98 GLIB_AVAILABLE_IN_ALL 99 void g_application_command_line_print (GApplicationCommandLine *cmdline, 100 const gchar *format, 101 ...) G_GNUC_PRINTF(2, 3); 102 GLIB_AVAILABLE_IN_ALL 103 void g_application_command_line_printerr (GApplicationCommandLine *cmdline, 104 const gchar *format, 105 ...) G_GNUC_PRINTF(2, 3); 106 107 GLIB_AVAILABLE_IN_ALL 108 int g_application_command_line_get_exit_status (GApplicationCommandLine *cmdline); 109 GLIB_AVAILABLE_IN_ALL 110 void g_application_command_line_set_exit_status (GApplicationCommandLine *cmdline, 111 int exit_status); 112 113 GLIB_AVAILABLE_IN_ALL 114 GVariant * g_application_command_line_get_platform_data (GApplicationCommandLine *cmdline); 115 116 GLIB_AVAILABLE_IN_2_36 117 GFile * g_application_command_line_create_file_for_arg (GApplicationCommandLine *cmdline, 118 const gchar *arg); 119 120 G_END_DECLS 121 122 #endif /* __G_APPLICATION_COMMAND_LINE_H__ */ 123