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

2.1     ! timbl       1: <PRE>
        !             2: /*             Chunk handling: Flexible arrays
        !             3: **             ===============================
        !             4: **
        !             5: ** This module implements a flexible array. It is a general utility module.
        !             6: ** A chunk is a structure which may be extended.  These routines create
        !             7: ** and append data to chnuks, automatically reallocating them as necessary.
        !             8: **
        !             9: */
        !            10: 
        !            11: 
        !            12: typedef struct {
        !            13:        int     size;           /* In bytes                     */
        !            14:        int     growby;         /* Allocation unit in bytes     */
        !            15:        int     allocated;      /* Current size of *data        */
        !            16:        char *  data;           /* Pointer to malloced area or 0 */
        !            17: } HTChunk;
        !            18: 
        !            19: 
        !            20: #ifdef SHORT_NAMES
        !            21: #define HTChunkClear           HTChClea
        !            22: #define HTChunkPutc            HTChPutc
        !            23: #define HTChunkPuts            HTChPuts
        !            24: #define HTChunkCreate          HTChCrea
        !            25: #define HTChunkTerminate       HTChTerm
        !            26: #define HTChunkEnsure          HtChEnsu
        !            27: #endif
        !            28: 
        !            29: 
        !            30: /*     Create new chunk
        !            31: **
        !            32: ** On entry,
        !            33: **
        !            34: **     growby          The number of bytes to allocate at a time
        !            35: **                     when the chunk is later extended. Arbitrary but
        !            36: **                     normally a trade-off time vs. memory
        !            37: **
        !            38: ** On exit,
        !            39: **     returns         A chunk pointer to the new chunk,
        !            40: */
        !            41: extern HTChunk * HTChunkCreate PARAMS((int growby));
        !            42: 
        !            43: 
        !            44: /*     Free a chunk
        !            45: **
        !            46: ** On entry,
        !            47: **     ch      A valid chunk pointer made by HTChunkCreate()
        !            48: **
        !            49: ** On exit,
        !            50: **     ch      is invalid and may not be used.
        !            51: */
        !            52: extern void HTChunkFree PARAMS((HTChunk * ch));
        !            53: 
        !            54: 
        !            55: /*     Clear a chunk
        !            56: **
        !            57: ** On entry,
        !            58: **     ch      A valid chunk pointer made by HTChunkCreate()
        !            59: **
        !            60: ** On exit,
        !            61: **     *ch     The size of the chunk is zero.
        !            62: */
        !            63: extern void HTChunkClear PARAMS((HTChunk * ch));
        !            64: 
        !            65: 
        !            66: /*     Ensure a chunk has a certain space in
        !            67: **
        !            68: ** On entry,
        !            69: **     ch      A valid chunk pointer made by HTChunkCreate()
        !            70: **     s       The size required
        !            71: **
        !            72: ** On exit,
        !            73: **     *ch     Has size at least s
        !            74: */
        !            75: extern void HTChunkEnsure PARAMS((HTChunk * ch, int s));
        !            76: 
        !            77: 
        !            78: /*     Append a character to a  chunk
        !            79: **
        !            80: ** On entry,
        !            81: **     ch      A valid chunk pointer made by HTChunkCreate()
        !            82: **     c       The character to be appended
        !            83: ** On exit,
        !            84: **     *ch     Is one character bigger
        !            85: */
        !            86: 
        !            87: extern void HTChunkPutc PARAMS((HTChunk * ch, char c));
        !            88: 
        !            89: /*     Append a string to a  chunk
        !            90: **
        !            91: ** On entry,
        !            92: **     ch      A valid chunk pointer made by HTChunkCreate()
        !            93: **     s       Tpoints to a zero-terminated string to be appended
        !            94: ** On exit,
        !            95: **     *ch     Is bigger by strlen(s)
        !            96: */
        !            97: 
        !            98: extern void HTChunkPuts PARAMS((HTChunk * ch, const char *s));
        !            99: 
        !           100: 
        !           101: /*     Append a zero character to a  chunk
        !           102: **
        !           103: ** On entry,
        !           104: **     ch      A valid chunk pointer made by HTChunkCreate()
        !           105: ** On exit,
        !           106: **     *ch     Is one character bigger
        !           107: */
        !           108: 
        !           109: extern void HTChunkTerminate PARAMS((HTChunk * ch));
        !           110: </PRE>

Webmaster