X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Fmemory-stream.cc;h=270438dcae5257286c808657bea047bb91c8a642;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=d73e808ee26d52946c5684d72088757a3490406b;hpb=6e9040684ec18353e138194d7a1d557acf791748;p=lilypond.git diff --git a/flower/memory-stream.cc b/flower/memory-stream.cc index d73e808ee2..270438dcae 100644 --- a/flower/memory-stream.cc +++ b/flower/memory-stream.cc @@ -3,20 +3,24 @@ source file of the GNU LilyPond music typesetter - (c) 2005 Han-Wen Nienhuys - + (c) 2005--2008 Han-Wen Nienhuys */ -#include -#include -#include -#include +#include +#include +#include +using namespace std; + #include "memory-stream.hh" +/* + TODO: add read support as well. +*/ const int Memory_out_stream::block_size_ = 1024; -cookie_io_functions_t -Memory_out_stream::functions_ = { +lily_cookie_io_functions_t +Memory_out_stream::functions_ += { Memory_out_stream::reader, Memory_out_stream::writer, Memory_out_stream::seeker, @@ -26,7 +30,7 @@ Memory_out_stream::functions_ = { int Memory_out_stream::cleaner (void *cookie) { - Memory_out_stream *stream = (Memory_out_stream*) cookie; + Memory_out_stream *stream = (Memory_out_stream *) cookie; stream->file_ = 0; return 0; @@ -35,12 +39,16 @@ Memory_out_stream::cleaner (void *cookie) Memory_out_stream::Memory_out_stream () { size_ = 0; - buffer_ = 0; + buffer_ = 0; buffer_blocks_ = 0; - file_ = fopencookie ((void*) this, "w", functions_); + file_ = 0; + +#if 0 + file_ = fopencookie ((void *) this, "w", functions_); +#endif } -Memory_out_stream::~Memory_out_stream() +Memory_out_stream::~Memory_out_stream () { if (file_) fclose (file_); @@ -48,7 +56,7 @@ Memory_out_stream::~Memory_out_stream() free (buffer_); } -FILE* +FILE * Memory_out_stream::get_file () const { return file_; @@ -60,20 +68,19 @@ Memory_out_stream::get_length () const return size_; } -const char * +char const * Memory_out_stream::get_string () const { return buffer_; } - ssize_t Memory_out_stream::writer (void *cookie, - const char *buffer, + char const *buffer, size_t size) { - Memory_out_stream * stream = (Memory_out_stream*) cookie; - + Memory_out_stream *stream = (Memory_out_stream *) cookie; + ssize_t newsize = stream->size_ + size; bool change = false; @@ -85,7 +92,8 @@ Memory_out_stream::writer (void *cookie, } if (change) - stream->buffer_ = (char*) realloc (stream->buffer_, stream->buffer_blocks_ * block_size_); + stream->buffer_ = (char *) realloc (stream->buffer_, + stream->buffer_blocks_ * block_size_); memcpy (stream->buffer_ + stream->size_, buffer, size); stream->size_ = newsize; @@ -93,7 +101,6 @@ Memory_out_stream::writer (void *cookie, return size; } - ssize_t Memory_out_stream::reader (void *cookie, char *buffer, @@ -102,15 +109,16 @@ Memory_out_stream::reader (void *cookie, (void) cookie; (void) buffer; (void) size; - + assert (false); + return 0; } - int -Memory_out_stream::seeker (void*, off64_t *, int whence) +Memory_out_stream::seeker (void *, off64_t *, int whence) { + (void) whence; + assert (false); - (void)whence; return 0; }