Annotation of libwww/Library/src/HTMuxCh.html, revision 1.1.2.3

1.1.2.1   frystyk     1: <HTML>
                      2: <HEAD>
1.1.2.3 ! frystyk     3:   <TITLE>W3C Reference Library libwww MUX Protocol</TITLE>
1.1.2.1   frystyk     4: </HEAD>
                      5: <BODY>
1.1.2.3 ! frystyk     6: <H1>
        !             7:   The MUX Protocol
        !             8: </H1>
1.1.2.1   frystyk     9: <PRE>
                     10: /*
                     11: **     (c) COPYRIGHT MIT 1995.
                     12: **     Please first read the full copyright statement in the file COPYRIGH.
                     13: */
                     14: </PRE>
1.1.2.3 ! frystyk    15: <P>
        !            16: This module defines the read and write functions to and from the network.
        !            17: As we are having reentrant function and a smarter network I/O this will get
        !            18: very small :-)
        !            19: <P>
        !            20: This module is implemented by <A HREF="HTMux.c">HTMux.c</A>, and it is a
        !            21: part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C Reference
        !            22: Library</A>.
1.1.2.1   frystyk    23: <PRE>
                     24: #ifndef HTMUXCHANNEL_H
                     25: #define HTMUXCHANNEL_H
                     26: 
1.1.2.3 ! frystyk    27: typedef struct _HTMuxChannel     HTMuxChannel;
        !            28: typedef struct _HTMuxSession     HTMuxSession;
        !            29: typedef struct _HTMuxProtocol    HTMuxProtocol;
        !            30: 
        !            31: typedef unsigned char            HTMuxSessionId;
        !            32: 
        !            33: #include "HTMuxHeader.h"
        !            34: #include "HTChannl.h"
        !            35: #include "HTHost.h"
1.1.2.1   frystyk    36: 
1.1.2.2   frystyk    37: #define INVSID         0               /* Invalid session id */
                     38: #define INVPID          0               /* Invalid protocol id */
1.1.2.1   frystyk    39: </PRE>
1.1.2.3 ! frystyk    40: <H2>
        !            41:   Mux Channel
        !            42: </H2>
1.1.2.1   frystyk    43: <PRE>
                     44: extern HTMuxChannel * HTMuxChannel_new (HTHost * host, HTChannel * ch);
                     45: 
                     46: extern HTMuxChannel * HTMuxChannel_find (HTChannel * ch);
                     47: 
                     48: extern BOOL HTMuxChannel_delete (HTMuxChannel * me);
                     49: 
                     50: extern BOOL HTMuxChannel_deleteAll (void);
                     51: 
                     52: extern HTNet * HTMuxChannel_net (HTMuxChannel * me);
                     53: 
1.1.2.3 ! frystyk    54: extern HTMuxSession * HTMuxChannel_findSessionFromId (HTMuxChannel * me,
        !            55:                                                      HTMuxSessionId sid);
1.1.2.1   frystyk    56: 
1.1.2.3 ! frystyk    57: extern HTMuxSession * HTMuxChannel_findSessionFromNet (HTMuxChannel * me,
        !            58:                                                       HTNet * net);
1.1.2.2   frystyk    59: 
1.1.2.3 ! frystyk    60: extern HTChannel * HTMuxChannel_channel (HTMuxChannel * muxch);
1.1.2.1   frystyk    61: 
1.1.2.3 ! frystyk    62: extern int HTMuxChannel_sendControl (HTMuxChannel * muxch, HTMuxSessionId sid,
        !            63:                                     HTMuxHeader opcode, int value,
        !            64:                                     const void * param, int param_size);
1.1.2.1   frystyk    65: 
                     66: </PRE>
1.1.2.3 ! frystyk    67: <H2>
        !            68:   Mux Session
        !            69: </H2>
        !            70: <PRE>
        !            71: extern HTMuxSessionId HTMuxSession_accept (HTMuxChannel * muxch, HTNet * net,
        !            72:                                           HTProtocolId pid);
        !            73: 
        !            74: extern HTMuxSessionId HTMuxSession_connect (HTMuxChannel * muxch, HTNet * net,
        !            75:                                            HTProtocolId pid);
        !            76: 
        !            77: extern int HTMuxSession_close (HTMuxChannel * muxch, HTMuxSessionId sid);
        !            78: 
        !            79: extern HTMuxSession * HTMuxSession_register (HTMuxChannel * muxch,
        !            80:                                             HTMuxSessionId sid,
        !            81:                                              HTProtocolId pid);
        !            82: 
        !            83: extern HTMuxSessionId HTMuxSession_id (HTMuxSession * session);
1.1.2.1   frystyk    84: 
1.1.2.3 ! frystyk    85: extern HTProtocolId HTMuxSession_pid (HTMuxSession * session);
1.1.2.1   frystyk    86: 
1.1.2.3 ! frystyk    87: extern HTNet * HTMuxSession_net (HTMuxSession * session);
        !            88: 
        !            89: extern BOOL HTMuxSession_setState (HTMuxSession * session, HTMuxHeader flags);
        !            90: 
        !            91: extern HTMuxHeader HTMuxSession_state (HTMuxSession * session);
        !            92: 
        !            93: extern int  HTMuxSession_credit (HTMuxSession * session);
        !            94: 
        !            95: extern BOOL HTMuxSession_setCredit (HTMuxChannel * muxch,
        !            96:                                    HTMuxSessionId sid, int credit);
        !            97: 
        !            98: extern int  HTMuxSession_fragment (HTMuxSession * session);
        !            99: 
        !           100: extern BOOL HTMuxSession_setFragment (HTMuxChannel * muxch,
        !           101:                                      HTMuxSessionId sid, int fragment);
        !           102: </PRE>
        !           103: <H2>
        !           104:   Mux Protocol
        !           105: </H2>
        !           106: <PRE>
        !           107: extern BOOL HTMuxProtocol_add (HTMuxChannel * muxch,
        !           108:                               HTProtocolId pid, const char * protocol);
        !           109: 
        !           110: extern BOOL HTMuxProtocol_delete (HTMuxChannel * muxch, HTProtocolId pid);
        !           111: </PRE>
1.1.2.1   frystyk   112: <PRE>
                    113: #endif
                    114: </PRE>
1.1.2.3 ! frystyk   115: <P>
        !           116:   <HR>
1.1.2.1   frystyk   117: <ADDRESS>
1.1.2.3 ! frystyk   118:   @(#) $Id: HTMuxCh.html,v 1.1.2.2 1996/11/02 20:10:24 frystyk Exp $
1.1.2.1   frystyk   119: </ADDRESS>
1.1.2.3 ! frystyk   120: </BODY></HTML>

Webmaster