]> git.donarmstrong.com Git - lilypond.git/blob - flower/include/memory-stream.hh
* ttftool/util.c:
[lilypond.git] / flower / include / memory-stream.hh
1 /*
2   memory-stream.hh -- declare Memory_out_stream
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #ifndef MEMORY_STREAM_HH
11 #define MEMORY_STREAM_HH
12
13 #include <stdio.h>
14 #include <unistd.h>
15
16 #include "libc-extension.hh"
17
18 class Memory_out_stream
19 {
20   char *buffer_;
21   ssize_t size_;
22   int buffer_blocks_;
23   FILE *file_;
24
25   static cookie_io_functions_t functions_;
26   static const int block_size_;
27
28 public:
29   static ssize_t reader (void *, char *, size_t);
30   static ssize_t writer (void *, char const *, size_t);
31   static int seeker (void *, off64_t *, int);
32   static int cleaner (void *);
33
34   Memory_out_stream ();
35   ~Memory_out_stream ();
36   FILE *get_file () const;
37   char const *get_string () const;
38   ssize_t get_length () const;
39 };
40
41 #endif /* MEMORY_STREAM_HH */