(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

Reply via email to