# # patch "netxx_pipe.hh" # from [7f13e757f0721fccd410751bdcc10f2d604de2a3] # to [9cc46f74d0c72435c87e51793684c942d68c8c8a] # ======================================================================== --- netxx_pipe.hh 7f13e757f0721fccd410751bdcc10f2d604de2a3 +++ netxx_pipe.hh 9cc46f74d0c72435c87e51793684c942d68c8c8a @@ -12,6 +12,27 @@ # include #endif +/* What is this all for? + +If you want to transparently handle a pipe and a socket on unix and windows +you have to abstract some difficulties: + + - sockets have a single filedescriptor for reading and writing + pipes usually come in pairs (one for reading and one for writing) + + - process creation is different on unix and windows + + => so Netxx::PipeStream is a Netxx::StreamBase which abstracts two pipes to + and from an external command + + - windows can select on a socket but not on a pipe + + => so Netxx::PipeCompatibleProbe is a Netxx::Probe like class which + _can_ handle pipes on windows (emulating select is difficult at best!) + (on unix Probe and PipeCompatibleProbe are identical) + +*/ + namespace Netxx { #ifdef WIN32 class PipeCompatibleProbe;