/* ** The cvsgui protocol used by WinCvs ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 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 ** 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 */ /* * gimpwire.h from the GIMP modified for the cvsgui project by : * Alexandre Parenteau --- November 1999 */ #ifndef CVSGUI_WIRE_H #define CVSGUI_WIRE_H #ifdef WIN32 # include #endif #ifdef __cplusplus extern "C" { #endif #ifndef __G_LIB_H__ typedef signed char gint8; typedef unsigned char guint8; typedef signed short gint16; typedef unsigned short guint16; typedef signed int gint32; typedef unsigned int guint32; typedef char gchar; typedef short gshort; typedef long glong; typedef int gint; typedef gint gboolean; typedef unsigned char guchar; typedef unsigned short gushort; typedef unsigned long gulong; typedef unsigned int guint; typedef float gfloat; typedef double gdouble; typedef void* gpointer; typedef const void *gconstpointer; #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif #endif // !__G_LIB_H__ #ifdef WIN32 # ifdef pid_t # undef pid_t // config.h of cvs # endif typedef HANDLE pid_t; typedef HANDLE pipe_t; #else typedef int pipe_t; #endif typedef struct _WireMessage WireMessage; typedef void (* WireReadFunc) (pipe_t fd, WireMessage *msg); typedef void (* WireWriteFunc) (pipe_t fd, WireMessage *msg); typedef void (* WireDestroyFunc) (WireMessage *msg); typedef int (* WireIOFunc) (pipe_t fd, guint8 *buf, gulong count); typedef int (* WireFlushFunc) (pipe_t fd); struct _WireMessage { guint32 type; gpointer data; }; void wire_register (guint32 type, WireReadFunc read_func, WireWriteFunc write_func, WireDestroyFunc destroy_func); void wire_set_reader (WireIOFunc read_func); void wire_set_writer (WireIOFunc write_func); void wire_set_flusher (WireFlushFunc flush_func); int wire_read (pipe_t fd, guint8 *buf, gulong count); int wire_write (pipe_t fd, guint8 *buf, gulong count); int wire_flush (pipe_t fd); int wire_error (void); void wire_clear_error (void); int wire_read_msg (pipe_t fd, WireMessage *msg); int wire_write_msg (pipe_t fd, WireMessage *msg); void wire_destroy (WireMessage *msg); int wire_read_int32 (pipe_t fd, guint32 *data, gint count); int wire_read_int16 (pipe_t fd, guint16 *data, gint count); int wire_read_int8 (pipe_t fd, guint8 *data, gint count); int wire_read_double (pipe_t fd, gdouble *data, gint count); int wire_read_string (pipe_t fd, gchar **data, gint count); int wire_write_int32 (pipe_t fd, guint32 *data, gint count); int wire_write_int16 (pipe_t fd, guint16 *data, gint count); int wire_write_int8 (pipe_t fd, guint8 *data, gint count); int wire_write_double (pipe_t fd, gdouble *data, gint count); int wire_write_string (pipe_t fd, gchar **data, gint count); #ifdef __cplusplus } #endif #endif /* CVSGUI_WIRE_H */