ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



Tcl_CreateChannelHandler(3)                Tcl Library Procedures                Tcl_CreateChannelHandler(3)



____________________________________________________________________________________________________________

NAME
       Tcl_CreateChannelHandler, Tcl_DeleteChannelHandler - call a procedure when a channel becomes readable
       or writable

SYNOPSIS
       #include <tcl.h>

       void
       Tcl_CreateChannelHandler(channel, mask, proc, clientData)

       void
       Tcl_DeleteChannelHandler(channel, proc, clientData)


ARGUMENTS
       Tcl_Channel       channel      (in)      Tcl channel such as returned by Tcl_CreateChannel.

       int               mask         (in)      Conditions under which proc should be called: OR-ed combina-tion combination
                                                tion  of TCL_READABLE, TCL_WRITABLE and TCL_EXCEPTION. Spec-ify Specify
                                                ify a zero value to temporarily disable an existing handler.

       Tcl_FileProc      *proc        (in)      Procedure  to invoke whenever the channel indicated by chan-nel channel
                                                nel meets the conditions specified by mask.

       ClientData        clientData   (in)      Arbitrary one-word value to pass to proc.
____________________________________________________________________________________________________________


DESCRIPTION
       Tcl_CreateChannelHandler arranges for proc to be called  in  the  future  whenever  input  or  output
       becomes  possible  on  the channel identified by channel, or whenever an exceptional condition exists
       for channel. The conditions of interest under which proc will be invoked are specified  by  the  mask
       argument.   See the manual entry for fileevent for a precise description of what it means for a chan-nel channel
       nel to be readable or writable.  Proc must conform to the following prototype:
              typedef void Tcl_ChannelProc(
                ClientData clientData,
                int mask);

       The clientData argument is the same as the value passed to Tcl_CreateChannelHandler when the  handler
       was  created. Typically, clientData points to a data structure containing application-specific infor-mation information
       mation about the channel. Mask is an integer mask indicating which of the requested conditions  actu-ally actually
       ally  exists for the channel; it will contain a subset of the bits from the mask argument to Tcl_Cre-ateChannelHandler Tcl_CreateChannelHandler
       ateChannelHandler when the handler was created.

       Each channel handler is identified by a unique combination of channel, proc  and  clientData.   There
       may  be  many  handlers  for  a  given channel as long as they don't have the same channel, proc, and
       clientData.  If Tcl_CreateChannelHandler is invoked when there is  already  a  handler  for  channel,
       proc,  and clientData, then no new handler is created;  instead, the mask is changed for the existing
       handler.

       Tcl_DeleteChannelHandler deletes a channel handler identified by channel, proc and clientData; if  no
       such handler exists, the call has no effect.

       Channel  handlers  are  invoked  via the Tcl event mechanism, so they are only useful in applications
       that are event-driven.  Note also that the conditions specified in the mask argument to proc  may  no
       longer  exist  when  proc is invoked:  for example, if there are two handlers for TCL_READABLE on the
       same channel, the first handler could consume all of the available input so that the  channel  is  no
       longer  readable  when  the  second handler is invoked.  For this reason it may be useful to use non-blocking nonblocking
       blocking I/O on channels for which there are event handlers.


SEE ALSO
       Notifier(3), Tcl_CreateChannel(3), Tcl_OpenFileChannel(3), vwait(n).


KEYWORDS
       blocking, callback, channel, events, handler, nonblocking.



Tcl                                                  7.5                         Tcl_CreateChannelHandler(3)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.