Annotation of libwww/Library/src/HTHstMan.html, revision 2.1

2.1     ! frystyk     1: <HTML>
        !             2: <HEAD>
        !             3: <!-- Changed by: Henrik Frystyk Nielsen, 19-May-1996 -->
        !             4:   <TITLE>W3C Reference Library libwww Private Hst Definition</TITLE>
        !             5: </HEAD>
        !             6: <BODY>
        !             7: <H1>
        !             8:   Private Host Definition
        !             9: </H1>
        !            10: <PRE>
        !            11: /*
        !            12: **     (c) COPYRIGHT MIT 1995.
        !            13: **     Please first read the full copyright statement in the file COPYRIGH.
        !            14: */
        !            15: </PRE>
        !            16: <P>
        !            17: This is the private definition of the Host Class. Please look in the public
        !            18: <A HREF="HTHost.html">Host Class</A> for more documentation 
        !            19: <P>
        !            20: This module is implemented by <A HREF="HTHost.c">HTHost.c</A>, and it is a
        !            21: part of the <A HREF="http://www.w3.org/pub/WWW/Library/">W3C Reference
        !            22: Library</A>.
        !            23: <PRE>
        !            24: #ifndef HTHSTMAN_H
        !            25: #define HTHSTMAN_H
        !            26: #include "HTHost.h"
        !            27: #include "HTDNS.h"
        !            28: #include "HTEvent.h"
        !            29: #include "HTProt.h"
        !            30: 
        !            31: #define PIPE_BUFFER_SIZE       8192
        !            32: </PRE>
        !            33: <P>
        !            34: The <CODE>HTHost</CODE> object is the core of the request queue management.
        !            35: This object contains information about the socket descriptor, the input read
        !            36: buffer etc. required to identify and service a request.
        !            37: <PRE>
        !            38: typedef enum _TCPState {
        !            39:     TCP_ERROR          = -2,
        !            40:     TCP_CONNECTED      = -1,
        !            41:     TCP_BEGIN          = 0,
        !            42:     TCP_CHANNEL,
        !            43:     TCP_DNS,
        !            44:     TCP_NEED_SOCKET,
        !            45:     TCP_NEED_BIND,
        !            46:     TCP_NEED_LISTEN,
        !            47:     TCP_NEED_CONNECT
        !            48: } TCPState;
        !            49: 
        !            50: struct _HTHost {
        !            51:     int                 hash;
        !            52: 
        !            53:     /* Information about the otherend */
        !            54:     char *             hostname;            /* name of host + optional port */
        !            55:     time_t             ntime;                              /* Creation time */
        !            56:     char *             type;                                   /* Peer type */
        !            57:     int                version;                             /* Peer version */
        !            58:     HTMethod           methods;                /* Public methods (bit-flag) */
        !            59:     char *             server;                               /* Server name */
        !            60:     char *             user_agent;                            /* User Agent */
        !            61:     char *             range_units;                                  /* ??? */
        !            62: 
        !            63:     /* When does this entry expire? */
        !            64:     time_t             expires;          /* Persistent channel expires time */
        !            65: 
        !            66:     /* Queuing and connection modes */
        !            67:     HTList *           pipeline;                /* Pipe line of net objects */
        !            68:     HTList *           pending;              /* List of pending Net objects */
        !            69:     BOOL               persistent;
        !            70:     HTTransportMode    mode;                              /* Supported mode */
        !            71: 
        !            72:     /* Support for transports */
        !            73:     HTChannel *                channel;                             /* data channel */
        !            74:     FILE *             fp;                      /* If we can't use a socket */
        !            75: 
        !            76:     /* Connection dependent stuff */
        !            77:     HTdns *            dns;                           /* Link to DNS object */
        !            78:     TCPState           tcpstate;                     /* State in connection */
        !            79:     SockA              sock_addr;           /* SockA is defined in sysdep.h */
        !            80:     int                        retry;               /* Counting attempts to connect */
        !            81:     int                home;                    /* Current home if multiple */
        !            82:     time_t             connecttime;             /* Used on multihomed hosts */
        !            83: 
        !            84:     /* Event Management */
        !            85:     HTEvent *          events[2];         /* reading and writing may differ */
        !            86:     HTEventType                registeredFor;    /* Which actions are we blocked on */
        !            87:     size_t             remainingRead;   /* Tells HostEvent to call next net */
        !            88: 
        !            89:     /* User specific stuff */
        !            90:     void *             context;                /* Protocol Specific context */
        !            91:     int                        forceWriteFlush;
        !            92: };
        !            93: 
        !            94: #define HTHost_bytesRead(me)           ((me) ? (me)-&gt;bytes_read : -1)
        !            95: #define HTHost_bytesWritten(me)                ((me) ? (me)-&gt;bytes_written : -1)
        !            96: 
        !            97: #define HTHost_setBytesRead(me,l)      ((me) ? (me-&gt;bytes_read=(l)) : -1)
        !            98: #define HTHost_setBytesWritten(me,l)   ((me) ? (me-&gt;bytes_written=(l)) :-1)
        !            99: #define HTHost_setDNS (host, dns)      ((me) ? (me-&gt;dns=(dns)) :-1)
        !           100: </PRE>
        !           101: 
        !           102: <PRE>
        !           103: #endif /* HTHSTMAN_H */
        !           104: </PRE>
        !           105: <P>
        !           106:   <HR>
        !           107: <ADDRESS>
        !           108:   @(#) $Id: HTHstMan.html,v 1.1.2.6 1996/11/18 05:00:59 eric Exp $
        !           109: </ADDRESS>
        !           110: </BODY></HTML>

Webmaster