1 #ifndef __STRINGSTREAM_H__
2 #define __STRINGSTREAM_H__
3 /**
4 * Phoebe DOM Implementation.
5 *
6 * This is a C++ approximation of the W3C DOM model, which follows
7 * fairly closely the specifications in the various .idl files, copies of
8 * which are provided for reference. Most important is this one:
9 *
10 * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
11 *
12 * Authors:
13 * Bob Jamison
14 *
15 * Copyright (C) 2006 Bob Jamison
16 *
17 * This library is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU Lesser General Public
19 * License as published by the Free Software Foundation; either
20 * version 2.1 of the License, or (at your option) any later version.
21 *
22 * This library is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25 * Lesser General Public License for more details.
26 *
27 * You should have received a copy of the GNU Lesser General Public
28 * License along with this library; if not, write to the Free Software
29 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30 */
33 #include "domstream.h"
36 namespace org
37 {
38 namespace w3c
39 {
40 namespace dom
41 {
42 namespace io
43 {
46 //#########################################################################
47 //# S T R I N G I N P U T S T R E A M
48 //#########################################################################
50 /**
51 * This class is for reading character from a DOMString
52 *
53 */
54 class StringInputStream : public InputStream
55 {
57 public:
59 StringInputStream(const DOMString &sourceString);
61 virtual ~StringInputStream();
63 virtual int available();
65 virtual void close();
67 virtual int get();
69 private:
71 DOMString &buffer;
73 long position;
75 }; // class StringInputStream
80 //#########################################################################
81 //# S T R I N G O U T P U T S T R E A M
82 //#########################################################################
84 /**
85 * This class is for sending a stream to a DOMString
86 *
87 */
88 class StringOutputStream : public OutputStream
89 {
91 public:
93 StringOutputStream();
95 virtual ~StringOutputStream();
97 virtual void close();
99 virtual void flush();
101 virtual int put(XMLCh ch);
103 virtual DOMString &getString()
104 { return buffer; }
106 virtual void clear()
107 { buffer = ""; }
109 private:
111 DOMString buffer;
114 }; // class StringOutputStream
122 } //namespace io
123 } //namespace dom
124 } //namespace w3c
125 } //namespace org
129 #endif /* __STRINGSTREAM_H__ */