X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgoutputstream.h;h=a5307409b010a67c1c442ce83e797989a2e79ece;hb=634b69219979c084837c59874e5b2aec01a1d3e4;hp=4977d7dc671adab00c11a5ffe781a47a2e060152;hpb=ab7ff4c6a04a9c29e4f1e8cb3fd1f39610c58c37;p=platform%2Fupstream%2Fglib.git diff --git a/gio/goutputstream.h b/gio/goutputstream.h index 4977d7d..a530740 100644 --- a/gio/goutputstream.h +++ b/gio/goutputstream.h @@ -1,5 +1,5 @@ /* GIO - GLib Input, Output and Streaming Library - * + * * Copyright (C) 2006-2007 Red Hat, Inc. * * This library is free software; you can redistribute it and/or @@ -13,9 +13,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * Author: Alexander Larsson */ @@ -23,11 +21,11 @@ #ifndef __G_OUTPUT_STREAM_H__ #define __G_OUTPUT_STREAM_H__ -#include -#include -#include -#include -#include +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include G_BEGIN_DECLS @@ -39,36 +37,21 @@ G_BEGIN_DECLS #define G_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_OUTPUT_STREAM, GOutputStreamClass)) /** - * GOutputStreamSpliceFlags: - * @G_OUTPUT_STREAM_SPLICE_FLAGS_NONE: Do not close either stream. - * @G_OUTPUT_STREAM_SPLICE_FLAGS_CLOSE_SOURCE: Close the source stream after the splice. - * @G_OUTPUT_STREAM_SPLICE_FLAGS_CLOSE_TARGET: Close the target stream after the splice. - * - * GOutputStreamSpliceFlags determine how streams should be spliced. - **/ -typedef enum { - G_OUTPUT_STREAM_SPLICE_FLAGS_NONE = 0, - G_OUTPUT_STREAM_SPLICE_FLAGS_CLOSE_SOURCE = 1 << 0, - G_OUTPUT_STREAM_SPLICE_FLAGS_CLOSE_TARGET = 1 << 1 -} GOutputStreamSpliceFlags; - -/** * GOutputStream: - * - * Base class for writing output. - * - * All classes derived from GOutputStream should implement synchronous + * + * Base class for writing output. + * + * All classes derived from GOutputStream should implement synchronous * writing, splicing, flushing and closing streams, but may implement * asynchronous versions. **/ -typedef struct _GOutputStream GOutputStream; typedef struct _GOutputStreamClass GOutputStreamClass; typedef struct _GOutputStreamPrivate GOutputStreamPrivate; struct _GOutputStream { GObject parent_instance; - + /*< private >*/ GOutputStreamPrivate *priv; }; @@ -79,62 +62,62 @@ struct _GOutputStreamClass GObjectClass parent_class; /* Sync ops: */ - - gssize (* write_fn)(GOutputStream *stream, - const void *buffer, - gsize count, - GCancellable *cancellable, - GError **error); - gssize (* splice) (GOutputStream *stream, - GInputStream *source, - GOutputStreamSpliceFlags flags, - GCancellable *cancellable, - GError **error); - gboolean (* flush) (GOutputStream *stream, - GCancellable *cancellable, - GError **error); - gboolean (* close_fn)(GOutputStream *stream, - GCancellable *cancellable, - GError **error); - + + gssize (* write_fn) (GOutputStream *stream, + const void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); + gssize (* splice) (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + GCancellable *cancellable, + GError **error); + gboolean (* flush) (GOutputStream *stream, + GCancellable *cancellable, + GError **error); + gboolean (* close_fn) (GOutputStream *stream, + GCancellable *cancellable, + GError **error); + /* Async ops: (optional in derived classes) */ - void (* write_async) (GOutputStream *stream, - const void *buffer, - gsize count, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - gssize (* write_finish) (GOutputStream *stream, - GAsyncResult *result, - GError **error); - void (* splice_async) (GOutputStream *stream, - GInputStream *source, - GOutputStreamSpliceFlags flags, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer data); - gssize (* splice_finish)(GOutputStream *stream, - GAsyncResult *result, - GError **error); - void (* flush_async) (GOutputStream *stream, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - gboolean (* flush_finish) (GOutputStream *stream, - GAsyncResult *result, - GError **error); - void (* close_async) (GOutputStream *stream, - int io_priority, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - gboolean (* close_finish) (GOutputStream *stream, - GAsyncResult *result, - GError **error); + void (* write_async) (GOutputStream *stream, + const void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* write_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* splice_async) (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* splice_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* flush_async) (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* flush_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* close_async) (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* close_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); /*< private >*/ /* Padding for future expansion */ @@ -148,30 +131,56 @@ struct _GOutputStreamClass void (*_g_reserved8) (void); }; -GType g_output_stream_get_type (void) G_GNUC_CONST; - +GLIB_AVAILABLE_IN_ALL +GType g_output_stream_get_type (void) G_GNUC_CONST; + +GLIB_AVAILABLE_IN_ALL gssize g_output_stream_write (GOutputStream *stream, const void *buffer, gsize count, GCancellable *cancellable, GError **error); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_write_all (GOutputStream *stream, const void *buffer, gsize count, gsize *bytes_written, GCancellable *cancellable, GError **error); +GLIB_AVAILABLE_IN_2_40 +gboolean g_output_stream_printf (GOutputStream *stream, + gsize *bytes_written, + GCancellable *cancellable, + GError **error, + const gchar *format, + ...) G_GNUC_PRINTF (5, 6); +GLIB_AVAILABLE_IN_2_40 +gboolean g_output_stream_vprintf (GOutputStream *stream, + gsize *bytes_written, + GCancellable *cancellable, + GError **error, + const gchar *format, + va_list args) G_GNUC_PRINTF (5, 0); +GLIB_AVAILABLE_IN_2_34 +gssize g_output_stream_write_bytes (GOutputStream *stream, + GBytes *bytes, + GCancellable *cancellable, + GError **error); +GLIB_AVAILABLE_IN_ALL gssize g_output_stream_splice (GOutputStream *stream, GInputStream *source, GOutputStreamSpliceFlags flags, GCancellable *cancellable, GError **error); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_flush (GOutputStream *stream, GCancellable *cancellable, GError **error); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_close (GOutputStream *stream, GCancellable *cancellable, GError **error); +GLIB_AVAILABLE_IN_ALL void g_output_stream_write_async (GOutputStream *stream, const void *buffer, gsize count, @@ -179,9 +188,22 @@ void g_output_stream_write_async (GOutputStream *stream, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); +GLIB_AVAILABLE_IN_ALL gssize g_output_stream_write_finish (GOutputStream *stream, GAsyncResult *result, GError **error); +GLIB_AVAILABLE_IN_2_34 +void g_output_stream_write_bytes_async (GOutputStream *stream, + GBytes *bytes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GLIB_AVAILABLE_IN_2_34 +gssize g_output_stream_write_bytes_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); +GLIB_AVAILABLE_IN_ALL void g_output_stream_splice_async (GOutputStream *stream, GInputStream *source, GOutputStreamSpliceFlags flags, @@ -189,30 +211,41 @@ void g_output_stream_splice_async (GOutputStream *stream, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); +GLIB_AVAILABLE_IN_ALL gssize g_output_stream_splice_finish (GOutputStream *stream, GAsyncResult *result, GError **error); +GLIB_AVAILABLE_IN_ALL void g_output_stream_flush_async (GOutputStream *stream, int io_priority, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_flush_finish (GOutputStream *stream, GAsyncResult *result, GError **error); +GLIB_AVAILABLE_IN_ALL void g_output_stream_close_async (GOutputStream *stream, int io_priority, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_close_finish (GOutputStream *stream, GAsyncResult *result, GError **error); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_is_closed (GOutputStream *stream); +GLIB_AVAILABLE_IN_ALL +gboolean g_output_stream_is_closing (GOutputStream *stream); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_has_pending (GOutputStream *stream); +GLIB_AVAILABLE_IN_ALL gboolean g_output_stream_set_pending (GOutputStream *stream, GError **error); +GLIB_AVAILABLE_IN_ALL void g_output_stream_clear_pending (GOutputStream *stream);