feature request, refactor std.stream.Stream

Ben Hinkle bhinkle at mathworks.com
Wed Jan 3 08:23:37 PST 2007


"BCS" <BCS at pathilink.com> wrote in message 
news:emv92t$2c5$2 at digitaldaemon.com...
> The InputStream and OutputStream interfaces are all but unusable because 
> they have such a huge number of methods to implements, however most of 
> them are implemented by the Stream class in a vary abstract way (all build 
> on 4 or 5 low level methods). This is all well and good until you want to 
> implement Input/OutputStream with some other class (Thread in my case)
>
> Why not put all of those function in a pair of mixins? Then anyone who 
> needs to make a stream like object could just implement the half dozen low 
> level things and mix in a big chunk of code.
>
>
> class ThreadStream : InputStream OutputStream Thread
> {
> mixin InputMixin!();
> mixin OutputMixin!();
>
> size_t readBlock(void* buffer, size_t size){...}
> size_t writeBlock(void* buffer, size_t size){...}
> ulong seek(long offset, SeekPos whence){...}
> }

I tried that once briefly and ran into scoping issues since mixins can't see 
private functions elsewhere and vice versa. I didn't try very hard, though. 
It would be great to see a serious attempt at it.

-Ben 





More information about the Digitalmars-d mailing list