1/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 2 3#line 1 "ostream.oo.c" 4/* Abstract output stream data type. 5 Copyright (C) 2006 Free Software Foundation, Inc. 6 Written by Bruno Haible <bruno@clisp.org>, 2006. 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21#include <config.h> 22 23/* Specification. */ 24#include "ostream.h" 25 26#line 27 "ostream.c" 27#if !IS_CPLUSPLUS 28#define ostream_representation any_ostream_representation 29#endif 30#include "ostream.priv.h" 31 32const typeinfo_t ostream_typeinfo = { "ostream" }; 33 34static const typeinfo_t * const ostream_superclasses[] = 35 { ostream_SUPERCLASSES }; 36 37#line 27 "ostream.oo.c" 38 39#if !HAVE_INLINE 40 41void 42ostream_write_str (ostream_t stream, const char *string) 43{ 44 ostream_write_mem (stream, string, strlen (string)); 45} 46 47#endif 48 49#line 50 "ostream.c" 50void 51ostream__write_mem (ostream_t first_arg, const void *data, size_t len) 52{ 53 /* Abstract (unimplemented) method called. */ 54 abort (); 55 #ifndef __GNUC__ 56 ostream__write_mem (first_arg,data,len); 57 #endif 58} 59 60void 61ostream__flush (ostream_t first_arg) 62{ 63 /* Abstract (unimplemented) method called. */ 64 abort (); 65 #ifndef __GNUC__ 66 ostream__flush (first_arg); 67 #endif 68} 69 70void 71ostream__free (ostream_t first_arg) 72{ 73 /* Abstract (unimplemented) method called. */ 74 abort (); 75 #ifndef __GNUC__ 76 ostream__free (first_arg); 77 #endif 78} 79 80 81const struct ostream_implementation ostream_vtable = 82{ 83 ostream_superclasses, 84 sizeof (ostream_superclasses) / sizeof (ostream_superclasses[0]), 85 sizeof (struct ostream_representation), 86 ostream__write_mem, 87 ostream__flush, 88 ostream__free, 89}; 90 91#if !HAVE_INLINE 92 93/* Define the functions that invoke the methods. */ 94 95void 96ostream_write_mem (ostream_t first_arg, const void *data, size_t len) 97{ 98 const struct ostream_implementation *vtable = 99 ((struct ostream_representation_header *) (struct any_ostream_representation *) first_arg)->vtable; 100 vtable->write_mem (first_arg,data,len); 101} 102 103void 104ostream_flush (ostream_t first_arg) 105{ 106 const struct ostream_implementation *vtable = 107 ((struct ostream_representation_header *) (struct any_ostream_representation *) first_arg)->vtable; 108 vtable->flush (first_arg); 109} 110 111void 112ostream_free (ostream_t first_arg) 113{ 114 const struct ostream_implementation *vtable = 115 ((struct ostream_representation_header *) (struct any_ostream_representation *) first_arg)->vtable; 116 vtable->free (first_arg); 117} 118 119#endif 120