Annotation of libwww/Library/src/HTNoFree.c, revision 2.1
2.1 ! frystyk 1: /*
! 2: ** NO FREE STREAM
! 3: **
! 4: ** (c) COPYRIGHT MIT 1995.
! 5: ** Please first read the full copyright statement in the file COPYRIGH.
! 6: ** @(#) $Id: HTStream.c,v 2.4 1998/09/18 12:57:30 frystyk Exp $
! 7: **
! 8: ** This stream is a throughline for all methods except FREE and ABORT
! 9: **
! 10: */
! 11:
! 12: /* Library include files */
! 13: #include "wwwsys.h"
! 14: #include "HTUtils.h"
! 15: #include "HTStream.h" /* Implemented here */
! 16:
! 17: struct _HTStream {
! 18: const HTStreamClass * isa;
! 19: HTStream * target;
! 20: };
! 21:
! 22: /* ------------------------------------------------------------------------- */
! 23:
! 24: PRIVATE int HTNoFreeStream_put_character (HTStream * me, char c)
! 25: {
! 26: return (*me->target->isa->put_character)(me->target, c);
! 27: }
! 28:
! 29: PRIVATE int HTNoFreeStream_put_string (HTStream * me, const char * s)
! 30: {
! 31: return (*me->target->isa->put_string)(me->target, s);
! 32: }
! 33:
! 34: PRIVATE int HTNoFreeStream_write (HTStream * me, const char * s, int l)
! 35: {
! 36: return (*me->target->isa->put_block)(me->target, s, l);
! 37: }
! 38:
! 39: PRIVATE int HTNoFreeStream_flush (HTStream * me)
! 40: {
! 41: return (*me->target->isa->flush)(me->target);
! 42: }
! 43:
! 44: PRIVATE int HTNoFreeStream_free (HTStream * me)
! 45: {
! 46: return HT_OK;
! 47: }
! 48:
! 49: PRIVATE int HTNoFreeStream_abort (HTStream * me, HTList * e)
! 50: {
! 51: return HT_ERROR;
! 52: }
! 53:
! 54: PRIVATE const HTStreamClass HTNoFreeStreamClass =
! 55: {
! 56: "NoFreeStream",
! 57: HTNoFreeStream_flush,
! 58: HTNoFreeStream_free,
! 59: HTNoFreeStream_abort,
! 60: HTNoFreeStream_put_character,
! 61: HTNoFreeStream_put_string,
! 62: HTNoFreeStream_write
! 63: };
! 64:
! 65: PUBLIC HTStream * HTNoFreeStream_new (HTStream * target)
! 66: {
! 67: if (target) {
! 68: HTStream * me;
! 69: if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL)
! 70: HT_OUTOFMEM("HTNoFree");
! 71: me->isa = &HTNoFreeStreamClass;
! 72: me->target = target;
! 73: return me;
! 74: }
! 75: return HTErrorStream();
! 76: }
! 77:
! 78: PUBLIC int HTNoFreeStream_delete (HTStream * me)
! 79: {
! 80: if (me) HT_FREE(me);
! 81: return HT_OK;
! 82: }
Webmaster