XimTrans.h revision b4ee4795
1b4ee4795Smrg/*
2b4ee4795Smrg * Copyright 1992 Sun Microsystems, Inc.  All rights reserved.
3b4ee4795Smrg *
4b4ee4795Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5b4ee4795Smrg * copy of this software and associated documentation files (the "Software"),
6b4ee4795Smrg * to deal in the Software without restriction, including without limitation
7b4ee4795Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8b4ee4795Smrg * and/or sell copies of the Software, and to permit persons to whom the
9b4ee4795Smrg * Software is furnished to do so, subject to the following conditions:
10b4ee4795Smrg *
11b4ee4795Smrg * The above copyright notice and this permission notice (including the next
12b4ee4795Smrg * paragraph) shall be included in all copies or substantial portions of the
13b4ee4795Smrg * Software.
14b4ee4795Smrg *
15b4ee4795Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16b4ee4795Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17b4ee4795Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18b4ee4795Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19b4ee4795Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20b4ee4795Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21b4ee4795Smrg * DEALINGS IN THE SOFTWARE.
22b4ee4795Smrg */
231ab64890Smrg/******************************************************************
241ab64890Smrg
251ab64890Smrg           Copyright 1992, 1993, 1994 by FUJITSU LIMITED
261ab64890Smrg
271ab64890SmrgPermission to use, copy, modify, distribute, and sell this software
281ab64890Smrgand its documentation for any purpose is hereby granted without fee,
291ab64890Smrgprovided that the above copyright notice appear in all copies and
301ab64890Smrgthat both that copyright notice and this permission notice appear
31b4ee4795Smrgin supporting documentation, and that the name of FUJITSU LIMITED
32b4ee4795Smrgnot be used in advertising or publicity pertaining to distribution
33b4ee4795Smrgof the software without specific, written prior permission.
34b4ee4795SmrgFUJITSU LIMITED makes no representations about the suitability of
35b4ee4795Smrgthis software for any purpose.
361ab64890SmrgIt is provided "as is" without express or implied warranty.
371ab64890Smrg
38b4ee4795SmrgFUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
39b4ee4795SmrgINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
40b4ee4795SmrgEVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
41b4ee4795SmrgCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
42b4ee4795SmrgUSE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
43b4ee4795SmrgOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
44b4ee4795SmrgPERFORMANCE OF THIS SOFTWARE.
451ab64890Smrg
461ab64890Smrg  Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
4761b2299dSmrg          Takashi Fujiwara     FUJITSU LIMITED
481ab64890Smrg                               fujiwara@a80.tech.yk.fujitsu.co.jp
491ab64890Smrg
501ab64890Smrg******************************************************************/
511ab64890Smrg
521ab64890Smrg#ifndef _XIMTRANS_H
531ab64890Smrg#define _XIMTRANS_H
541ab64890Smrg
551ab64890Smrgtypedef struct _TransIntrCallbackRec	*TransIntrCallbackPtr;
561ab64890Smrg
571ab64890Smrgtypedef struct _TransIntrCallbackRec {
581ab64890Smrg    Bool			(*func)(
591ab64890Smrg					Xim, INT16, XPointer, XPointer
601ab64890Smrg					);
611ab64890Smrg    XPointer			 call_data;
621ab64890Smrg    TransIntrCallbackPtr	 next;
631ab64890Smrg} TransIntrCallbackRec ;
641ab64890Smrg
651ab64890Smrgtypedef struct {
661ab64890Smrg    TransIntrCallbackPtr	 intr_cb;
671ab64890Smrg    struct _XtransConnInfo 	*trans_conn; /* transport connection object */
681ab64890Smrg    int				 fd;
691ab64890Smrg    char			*address;
701ab64890Smrg    Window			 window;
711ab64890Smrg    Bool			 is_putback;
721ab64890Smrg} TransSpecRec;
731ab64890Smrg
741ab64890Smrg
751ab64890Smrg/*
761ab64890Smrg * Prototypes
771ab64890Smrg */
781ab64890Smrg
791ab64890Smrgextern Bool _XimTransRegisterDispatcher(
801ab64890Smrg    Xim		 im,
811ab64890Smrg    Bool	 (*callback)(
821ab64890Smrg			     Xim, INT16, XPointer, XPointer
831ab64890Smrg			     ),
841ab64890Smrg    XPointer	 call_data
851ab64890Smrg);
861ab64890Smrg
871ab64890Smrg
881ab64890Smrgextern Bool _XimTransIntrCallback(
891ab64890Smrg    Xim		 im,
901ab64890Smrg    Bool	 (*callback)(
911ab64890Smrg			     Xim, INT16, XPointer, XPointer
921ab64890Smrg			     ),
931ab64890Smrg    XPointer	 call_data
941ab64890Smrg);
951ab64890Smrg
961ab64890Smrgextern Bool _XimTransCallDispatcher(
971ab64890Smrg    Xim		 im,
981ab64890Smrg    INT16	 len,
991ab64890Smrg    XPointer	 data
1001ab64890Smrg);
1011ab64890Smrg
1021ab64890Smrgextern void _XimFreeTransIntrCallback(
1031ab64890Smrg    Xim		 im
1041ab64890Smrg);
1051ab64890Smrg
1061ab64890Smrgextern Bool _XimTransFilterWaitEvent(
1071ab64890Smrg    Display	*d,
1081ab64890Smrg    Window	 w,
1091ab64890Smrg    XEvent	*ev,
1101ab64890Smrg    XPointer	 arg
1111ab64890Smrg);
1121ab64890Smrg
1131ab64890Smrgextern void _XimTransInternalConnection(
1141ab64890Smrg    Display	*d,
1151ab64890Smrg    int		 fd,
1161ab64890Smrg    XPointer	 arg
1171ab64890Smrg);
1181ab64890Smrg
1191ab64890Smrgextern Bool _XimTransWrite(
1201ab64890Smrg    Xim		 im,
1211ab64890Smrg    INT16	 len,
1221ab64890Smrg    XPointer	 data
1231ab64890Smrg);
1241ab64890Smrg
1251ab64890Smrgextern Bool _XimTransRead(
1261ab64890Smrg    Xim		 im,
1271ab64890Smrg    XPointer	 recv_buf,
1281ab64890Smrg    int		 buf_len,
1291ab64890Smrg    int		*ret_len
1301ab64890Smrg);
1311ab64890Smrg
1321ab64890Smrgextern void _XimTransFlush(
1331ab64890Smrg    Xim		 im
1341ab64890Smrg);
1351ab64890Smrg
1361ab64890Smrg#endif /* _XIMTRANS__H */
137