123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
|
/*******************************************************************************
A Conduit that ignores all that is written to it
copyright: Copyright (c) 2008. Fawzi Mohamed
license: BSD style: $(LICENSE)
version: Initial release: July 2008
author: Fawzi Mohamed
*******************************************************************************/
module tango.io.device.BitBucket;
private import tango.io.device.Conduit;
/*******************************************************************************
A Conduit that ignores all that is written to it and returns Eof
when read from. Note that write() returns the length of what was
handed to it, acting as a pure bit-bucket. Returning zero or Eof
instead would not be appropriate in this context.
*******************************************************************************/
class BitBucket : Conduit
{
override string toString () {return "<bitbucket>";}
override const size_t bufferSize () { return 0;}
override size_t read (void[] dst) { return Eof; }
override size_t write (const(void)[] src) { return src.length; }
override void detach () { }
}
debug(UnitTest)
{
unittest{
auto a=new BitBucket;
a.write("bla");
a.flush();
a.detach();
a.write("b"); // at the moment it works, disallow?
uint[4] b=0;
a.read(b);
foreach (el;b)
assert(el==0);
}
}
|