std.socket classes
Adam D. Ruppe via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Apr 10 11:57:13 PDT 2017
On Monday, 10 April 2017 at 16:18:20 UTC, Jonathan Marler wrote:
> An interesting benefit. However, I don't think this is the
> ideal way to support such a use case.
If I was doing it myself, I'd probably do an interface / final
class split too (which also opens up a wee bit of additional easy
optimization), but the Socket class isn't *bad* for this.
> My first thought is that since the interface you are using (the
> Socket class) wasn't really designed to be overridden, you
> probably had to do some interesting hacks to make it work.
No, the code is very straight-forward, regular class method
overrides with appropriate forwards to the base class
implementation where needed.
> For example, when you accept a new socket, you probably had to
> delete the Socket object you got and create a new SSLSocket
> object passing the handle from one to the other, and make sure
I didn't implement the server, but if I did, it would be another
simple case of
override SslSocket accept() {
return new SslSocket(....);
}
or better yet, `override SslSocket accepting() { ...}`, since
there IS a method specifically designed for this:
http://dpldocs.info/experimental-docs/std.socket.Socket.accepting.html
That'd work fine too.
More information about the Digitalmars-d-learn
mailing list