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

1.1.2.1   eric        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 {
1.1.2.4   frystyk    51:     int                 hash;
                     52: 
                     53:     /* Information about the otherend */
1.1.2.1   eric       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;                                  /* ??? */
1.1.2.4   frystyk    62: 
                     63:     /* When does this entry expire? */
                     64:     time_t             expires;          /* Persistent channel expires time */
                     65: 
                     66:     /* Queuing and connection modes */
1.1.2.1   eric       67:     HTList *           pipeline;                /* Pipe line of net objects */
                     68:     HTList *           pending;              /* List of pending Net objects */
                     69:     BOOL               persistent;
1.1.2.4   frystyk    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 */
1.1.2.1   eric       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: 
1.1.2.4   frystyk    84:     /* Event Management */
1.1.2.5 ! frystyk    85:     HTEvent *          events[2];         /* reading and writing may differ */
1.1.2.4   frystyk    86:     HTEventType                registeredFor;    /* Which actions are we blocked on */
1.1.2.1   eric       87:     size_t             remainingRead;   /* Tells HostEvent to call next net */
                     88: 
                     89:     /* User specific stuff */
                     90:     void *             context;                /* Protocol Specific context */
                     91: };
                     92: 
                     93: #define HTHost_bytesRead(me)           ((me) ? (me)-&gt;bytes_read : -1)
                     94: #define HTHost_bytesWritten(me)                ((me) ? (me)-&gt;bytes_written : -1)
                     95: 
                     96: #define HTHost_setBytesRead(me,l)      ((me) ? (me-&gt;bytes_read=(l)) : -1)
                     97: #define HTHost_setBytesWritten(me,l)   ((me) ? (me-&gt;bytes_written=(l)) :-1)
                     98: #define HTHost_setDNS (host, dns)      ((me) ? (me-&gt;dns=(dns)) :-1)
                     99: </PRE>
                    100: 
                    101: <PRE>
                    102: #endif /* HTHSTMAN_H */
                    103: </PRE>
                    104: <P>
                    105:   <HR>
                    106: <ADDRESS>
1.1.2.5 ! frystyk   107:   @(#) $Id: HTHstMan.html,v 1.1.2.4 1996/11/07 18:47:28 frystyk Exp $
1.1.2.1   eric      108: </ADDRESS>
                    109: </BODY></HTML>

Webmaster