(2010/12/29 8:41), Andrei Alexandrescu wrote:
On 12/28/10 5:14 PM, Haruki Shigemori wrote:
(2010/12/28 16:02), Andrei Alexandrescu wrote:
I've put together over the past days an embryonic streaming interface.
It separates transport from formatting, input from output, and buffered
from unbuffered operation.
http://erdani.com/d/phobos/std_stream2.html
There are a number of questions interspersed. It would be great to start
a discussion using that design as a baseline. Please voice any related
thoughts - thanks!
Andrei
I've waited so long for this day.
Excuse me, would you give me a user side code and librarian side code
using std.stream2?
I don't know a concrete implementation of the std.stream2 interfaces.
There isn't one. The source code is just support for documentation, and
I attach it with this message.
Thanks for participating! I know there has been some good stream-related
activity in the Japanese D community.
Andrei
Like this?
-----
import std.stream2;
void main()
{
/*
<data>
<int>123</int>
<double>55.98</double>
<string>aabbccddee</string>
</data>
*/
auto infile = new BufferedFileTransport("intest.xml");
auto unfmt = new XmlUnformatter(infile);
int a;
double b;
string c;
unfmt.read(a);
unfmt.read(b);
unfmt.read(c);
writeln(a); // 123
writeln(b); // 55.98
writeln(c); // aabbccddee
auto outfile = new UnbufferedFileTransport("outtest.dat");
auto fmt = new BinaryFormatter(outfile);
fmt.put(a);
fmt.put(b);
fmt.put(c);
/*
| 0 1 2 3 4 5 6 7 8 9 A B C D E F
----+------------------------------------------------
0000| 7B-00-00-00-00-00-00-00-3D-0A-D7-A3-70-FD-4B-40
0001| 0A-00-00-00-61-61-62-62-63-63-64-64-65-65
*/
}
--
SHOO