Annotation of libwww/Library/src/HTAncMan.html, revision 2.1
2.1 ! frystyk 1: <HTML>
! 2: <HEAD>
! 3: <TITLE>Anchor Object</TITLE>
! 4: <!-- Changed by: Henrik Frystyk Nielsen, 6-Dec-1995 -->
! 5: </HEAD>
! 6: <BODY>
! 7:
! 8: <H1>The Anchor and Link Objects</H1>
! 9:
! 10: <PRE>
! 11: /*
! 12: ** (c) COPYRIGHT MIT 1995.
! 13: ** Please first read the full copyright statement in the file COPYRIGH.
! 14: */
! 15: </PRE>
! 16:
! 17: This module is the private part of the anchor object. It has the
! 18: functions declarations that are private to the Library and that
! 19: shouldn't be used by applications. See also the public part of the
! 20: declarition in the <A HREF="HTAnchor.html">HTAnchorModule</A>.<P>
! 21:
! 22: <PRE>
! 23: #ifndef HTANCMAN_H
! 24: #define HTANCMAN_H
! 25:
! 26: #include "HTAnchor.h"
! 27: #include "HTList.h"
! 28: #include "HTAtom.h"
! 29: #include "HTMethod.h"
! 30: </PRE>
! 31:
! 32: <H2>The Link Object</H2>
! 33:
! 34: Link Objects bind together anchor objects
! 35:
! 36: <PRE>
! 37: struct _HTLink {
! 38: HTAnchor * dest; /* The anchor to which this leads */
! 39: HTLinkType type; /* Semantics of this link */
! 40: HTMethod method; /* Method for this link, e.g. PUT */
! 41: HTLinkResult result; /* Result of any attempt to get this link */
! 42: };
! 43: </PRE>
! 44:
! 45: <H2>The Anchor Object</H2>
! 46:
! 47: We have a set of Anchor objects which of course should be sub classes
! 48: - but - hey - this is C - what do you expect!
! 49:
! 50: <A NAME="Generic"><H3>Generic Anchor type</H3></A>
! 51:
! 52: This is the super class of anchors. We often use this as an argument
! 53: to the functions that both accept parent anchors and child anchors. We
! 54: separate the first link from the others to avoid too many small
! 55: mallocs involved by a list creation. Most anchors only point to one
! 56: place.
! 57:
! 58: <PRE>
! 59: struct _HTAnchor {
! 60: HTLink mainLink; /* Main (or default) destination of this */
! 61: HTList * links; /* List of extra links from this, if any */
! 62: HTParentAnchor * parent; /* Parent of this anchor (self for adults) */
! 63: };
! 64: </PRE>
! 65:
! 66: <A NAME="parent"><H3>Anchor for a Parent Object</H3></A>
! 67:
! 68: These anchors points to the whole contents of a graphic object
! 69: (document). The parent anchor of a parent anchor is itself. The parent
! 70: anchor now contains all meta information about the object. This is
! 71: largely the entity headers in the HTTP specification.
! 72:
! 73: <PRE>
! 74: struct _HTParentAnchor {
! 75: /* Common part from the generic anchor structure */
! 76: HTLink mainLink; /* Main (or default) destination of this */
! 77: HTList * links; /* List of extra links from this, if any */
! 78: HTParentAnchor * parent; /* Parent of this anchor (self) */
! 79:
! 80: /* ParentAnchor-specific information */
! 81: HTList * children; /* Subanchors of this, if any */
! 82: HTList * sources; /* List of anchors pointing to this, if any */
! 83: void * document; /* The document within this is an anchor */
! 84: char * physical; /* Physical address */
! 85: BOOL cacheHit; /* Yes, if cached object found */
! 86: char * address; /* Absolute address of this node */
! 87: BOOL isIndex; /* Acceptance of a keyword search */
! 88:
! 89: /* Entity header fields */
! 90: BOOL header_parsed; /* Are we done parsing? */
! 91:
! 92: char * title;
! 93: int methods; /* Allowed methods (bit-flag) */
! 94:
! 95: HTEncoding content_encoding;
! 96: HTLanguage content_language; /* @@@ SHOULD BE LIST @@@ */
! 97: long int content_length;
! 98: HTCte cte; /* Content-Transfer-Encoding */
! 99: HTFormat content_type;
! 100: HTCharset charset; /* Parameter to content-type */
! 101: HTLevel level; /* Parameter to content-type `text/html' */
! 102:
! 103: time_t date; /* When was the request issued */
! 104: time_t expires; /* When does the copy expire */
! 105: time_t last_modified;
! 106:
! 107: char * derived_from; /* Opaque string */
! 108: char * version; /* Opaque string */
! 109:
! 110: /* List of unknown headers coming in from the network. Use the field in the
! 111: request structure for sending test headers. */
! 112: HTList * extra_headers;
! 113: };
! 114: </PRE>
! 115:
! 116: <A NAME="child"><H3>Anchor for a Child Object</H3></A>
! 117:
! 118: A child anchor is a anchor object that points to a subpart of a
! 119: graphic object (document)
! 120:
! 121: <PRE>
! 122: struct _HTChildAnchor {
! 123: /* Common part from the generic anchor structure */
! 124: HTLink mainLink; /* Main (or default) destination of this */
! 125: HTList * links; /* List of extra links from this, if any */
! 126: HTParentAnchor * parent; /* Parent of this anchor */
! 127:
! 128: /* ChildAnchor-specific information */
! 129: char * tag; /* Address of this anchor relative to parent */
! 130: };
! 131: </PRE>
! 132:
! 133: <PRE>
! 134: #endif /* HTANCMAN_H */
! 135: </PRE>
! 136: </BODY>
! 137: </HTML>
Webmaster