gimpwire.h 7.12 KB
Newer Older
1
/* LIBGIMP - The GIMP Library
2
 * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
Manish Singh's avatar
Manish Singh committed
3 4
 *
 * This library is free software; you can redistribute it and/or
Marc Lehmann's avatar
Marc Lehmann committed
5
 * modify it under the terms of the GNU Lesser General Public
Manish Singh's avatar
Manish Singh committed
6
 * License as published by the Free Software Foundation; either
7 8 9 10 11
 * 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
12
 * Lesser General Public License for more details.
Manish Singh's avatar
Manish Singh committed
13
 *
Marc Lehmann's avatar
Marc Lehmann committed
14
 * You should have received a copy of the GNU Lesser General Public
15 16 17
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
18 19
 */

Elliot Lee's avatar
Elliot Lee committed
20 21 22
#ifndef __GIMP_WIRE_H__
#define __GIMP_WIRE_H__

23
G_BEGIN_DECLS
Elliot Lee's avatar
Elliot Lee committed
24

25
/* For information look into the C source or the html documentation */
Elliot Lee's avatar
Elliot Lee committed
26 27


28 29 30 31 32 33 34 35 36 37
typedef struct _GimpWireMessage  GimpWireMessage;

typedef void     (* GimpWireReadFunc)    (GIOChannel      *channel,
                                          GimpWireMessage *msg,
                                          gpointer         user_data);
typedef void     (* GimpWireWriteFunc)   (GIOChannel      *channel,
                                          GimpWireMessage *msg,
                                          gpointer         user_data);
typedef void     (* GimpWireDestroyFunc) (GimpWireMessage *msg);
typedef gboolean (* GimpWireIOFunc)      (GIOChannel      *channel,
38
                                          const guint8    *buf,
39 40 41 42 43 44 45
                                          gulong           count,
                                          gpointer         user_data);
typedef gboolean (* GimpWireFlushFunc)   (GIOChannel      *channel,
                                          gpointer         user_data);


struct _GimpWireMessage
Elliot Lee's avatar
Elliot Lee committed
46
{
47
  guint32  type;
Elliot Lee's avatar
Elliot Lee committed
48 49 50 51
  gpointer data;
};


52 53 54 55 56 57 58 59 60
void      gimp_wire_register      (guint32              type,
                                   GimpWireReadFunc     read_func,
                                   GimpWireWriteFunc    write_func,
                                   GimpWireDestroyFunc  destroy_func);

void      gimp_wire_set_reader    (GimpWireIOFunc       read_func);
void      gimp_wire_set_writer    (GimpWireIOFunc       write_func);
void      gimp_wire_set_flusher   (GimpWireFlushFunc    flush_func);

Sven Neumann's avatar
Sven Neumann committed
61
gboolean  gimp_wire_read          (GIOChannel           *channel,
62 63 64 65 66 67 68 69 70 71 72 73 74
                                   guint8          *buf,
                                   gsize            count,
                                   gpointer         user_data);
gboolean  gimp_wire_write         (GIOChannel      *channel,
                                   const guint8    *buf,
                                   gsize            count,
                                   gpointer         user_data);
gboolean  gimp_wire_flush         (GIOChannel      *channel,
                                   gpointer         user_data);

gboolean  gimp_wire_error         (void);
void      gimp_wire_clear_error   (void);

Sven Neumann's avatar
Sven Neumann committed
75
gboolean  gimp_wire_read_msg      (GIOChannel          *channel,
76 77
                                   GimpWireMessage *msg,
                                   gpointer         user_data);
Sven Neumann's avatar
Sven Neumann committed
78
gboolean  gimp_wire_write_msg     (GIOChannel          *channel,
79 80 81 82 83
                                   GimpWireMessage *msg,
                                   gpointer         user_data);

void      gimp_wire_destroy       (GimpWireMessage *msg);

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134

/*  for internal use in libgimpbase  */

G_GNUC_INTERNAL gboolean  _gimp_wire_read_int32   (GIOChannel     *channel,
                                                   guint32        *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_read_int16   (GIOChannel     *channel,
                                                   guint16        *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_read_int8    (GIOChannel     *channel,
                                                   guint8         *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_read_double  (GIOChannel     *channel,
                                                   gdouble        *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_read_string  (GIOChannel     *channel,
                                                   gchar         **data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_read_color   (GIOChannel     *channel,
                                                   GimpRGB        *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_int32  (GIOChannel     *channel,
                                                   const guint32  *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_int16  (GIOChannel     *channel,
                                                   const guint16  *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_int8   (GIOChannel     *channel,
                                                   const guint8   *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_double (GIOChannel     *channel,
                                                   const gdouble  *data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_string (GIOChannel     *channel,
                                                   gchar         **data,
                                                   gint            count,
                                                   gpointer        user_data);
G_GNUC_INTERNAL gboolean  _gimp_wire_write_color  (GIOChannel     *channel,
                                                   const GimpRGB  *data,
                                                   gint            count,
                                                   gpointer        user_data);
Elliot Lee's avatar
Elliot Lee committed
135

136

137
G_END_DECLS
138

Elliot Lee's avatar
Elliot Lee committed
139
#endif /* __GIMP_WIRE_H__ */