XtInputCallbackProc() XtInputCallbackProc()
Name
XtInputCallbackProc - interface definition for procedure to handle file, pipe, or socket activity.
Synopsis
typedef void (*XtInputCallbackProc)(XtPointer, int *, XtInputId *);
XtPointer client_data; int *source; XtInputId *id;
Inputs
client_data
Specifies the data that was registered with this procedure in XtAppAddInput().
source Specifies the file descriptor (on POSIX systems) that generated the event.
id Specifies the ID that was returned when this procedure was registered with XtAppAddInput() call.
Description
An XtInputCallbackProc is registered with XtAppAddInput(). It is called when there is activity of the specified type (read, write, or
error) on a specified file descriptor (which can be a file, pipe, or socket).
An XtInputCallbackProc should do whatever is necessary to handle the activity on the alternate event source. If EOF is read on the
descriptor, the procedure can un-register itself by passing its id argument to XtRemoveInput().
Usage
An XtInputCallbackProc is inherently operating-system-dependent and will have to be ported when the widget or application is ported to a
new operating system. On non-POSIX systems, the source argument is some OS-dependent identifier of an input source.
Example
The procedure below is an XtInputCallbackProc from the xconsole client (which is new in X11R5). Note that it reads input with the POSIX
read() system call, and that it closes the file descriptor and removes the input source if it reaches EOF or gets an error on the input
source.
static void inputReady (w, source, id)
XtPointer w;
int *source;
XtInputId *id;
{
char buffer[1025];
int n;
n = read (*source, buffer, sizeof (buffer) - 1);
if (n <= 0)
{
fclose (input);
XtRemoveInput (*id);
}
Notify ();
buffer[n] = ' ';
if (app_resources.stripNonprint)
{
stripNonprint (buffer);
n = strlen (buffer);
}
TextAppend ((Widget) text, buffer, n);
}
This procedure is registered with the following call:
input_id = XtAddInput (fileno (input), (XtPointer) XtInputReadMask,
inputReady, (XtPointer) text);
See Also
XtAppAddInput(1), XtRemoveInput(1).
Xt - Event Handling XtInputCallbackProc()