The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

ChnlStack (3)
  • >> ChnlStack (3) ( Solaris man: Библиотечные вызовы )
  • 
    _________________________________________________________________
    
    NAME
         Tcl_StackChannel, Tcl_UnstackChannel - stack an I/O  channel
         on top of another, and undo it
    
    SYNOPSIS
         #include <tcl.h>
    
         Tcl_Channel
         Tcl_StackChannel(interp, typePtr, clientData, mask, channel)
    
         void
         Tcl_UnstackChannel(interp, channel)
    
         Tcl_Channel
         Tcl_GetStackedChannel(channel)
    
    
    ARGUMENTS
         Tcl_Interp        *interp        (in)      Interpreter   for
                                                    error reporting -
                                                    can be NULL.
    
         Tcl_ChannelType   *typePtr       (in)      The  new  channel
                                                    I/O procedures to
                                                    use for channel.
    
         ClientData        clientData     (in)      Arbitrary    one-
                                                    word   value   to
                                                    pass  to  channel
                                                    I/O procedures.
    
         int               mask           (in)      Conditions  under
                                                    which     channel
                                                    will   be   used:
                                                    OR-ed combination
                                                    of  TCL_READABLE,
                                                    TCL_WRITABLE  and
                                                    TCL_EXCEPTION.
                                                    This   can  be  a
                                                    subset   of   the
                                                    operations
                                                    currently allowed
                                                    on channel.
    
         Tcl_Channel       channel        (in)      An  existing  Tcl
                                                    channel  such  as
                                                    returned       by
                                                    Tcl_CreateChannel.
    _________________________________________________________________
    
    DESCRIPTION
         These functions are for use by extensions that add  process-
         ing  layers  to Tcl I/O channels.  Examples include compres-
         sion and encryption modules.  These functions  transparently
         stack  and  unstack a new channel on top of an existing one.
         Any number of channels can be stacked together.
    
         Tcl_StackChannel replaces an existing  channel  with  a  new
         channel  by  the  same  name that was registered for channel
         with Tcl_RegisterChannel.
    
         Tcl_StackChannel works by creating a new  channel  structure
         under  the existing channel and pushing the existing channel
         functions down to the newly  created  channel.   The  hidden
         channel  does no buffering, newline translations, or charac-
         ter set encoding.  Instead, the buffering, newline  transla-
         tions,  and  encoding functions all remain at the top of the
         channel stack.  The top-most channel gets changed to use the
         I/O  channel  functions  defined in typePtr, and the channel
         functions are passed the new clientData.  The existing chan-
         nel  structure  is modified in place, so C applications that
         continue to use channel will also see the effects of the new
         processing  module.  A pointer to a new channel structure is
         returned, although this new data structure is the  one  that
         has  been  pushed  down  below the top of the channel module
         stack.   (This  pointer  can  also  be  obtained  with   the
         Tcl_GetStackedChannel call.)  If an error occurs when stack-
         ing the channel, NULL is returned instead.
    
         The mask parameter specifies the operations that are allowed
         on the new channel.  These can be a subset of the operations
         allowed on the original channel.  For example, a  read-write
         channel  may  become  read-only  after  the Tcl_StackChannel
         call.
    
         Closing a channel closes the channels stacked below it.  The
         close  of  stacked channels is executed in a way that allows
         buffered data to be properly flushed.
    
         Tcl_UnstackChannel reverses the process.  The old channel is
         associated  with the channel name, and the processing module
         added by Tcl_StackChannel is destroyed.  If there is no  old
         channel,  then Tcl_UnstackChannel is equivalent to Tcl_Close
         .
    
    
    SEE ALSO
         Notifier(3),  Tcl_CreateChannel(3),  Tcl_OpenFileChannel(3),
         vwait(n).
    
    
    
    KEYWORDS
         channel, compression
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру