Branch: Tag:

2015-08-27

2015-08-27 13:22:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Stdio: Initial implementation of Stdio.FakePipe.

This is a class that attempts to emulate a bi-directional pipe/socket,
but without using any fds.

The intended use is to simplify implementation of APIs that require
emulation of sockets (like eg SSL.File).

322:    "backtrace_frame": "predef::Error.Generic":1, "predef::Error.Generic.create":1, "predef::MasterObject.describe_backtrace":1,    "bind": "7.8::Stdio.Port.create":1,    "bind()": "7.8::Stdio.Port.create":1, -  "bool": "predef::Crypto.DH.Parameters.validate":1, "predef::Crypto.verify_crypt_md5":1, "predef::HTTPLoop.Loop.create":1, "predef::HTTPLoop.Loop.logp":1, "predef::Image.PSD._decode":6, "predef::Image.PSD.decode_layers":2, "predef::Image.WebP.encode":6, "predef::Image.XCF._decode":5, "predef::Image.XCF.decode_layers":3, "predef::NetUtils.NetMask.ip_in":1, "predef::NetUtils.get_network_type":1, "predef::NetUtils.has_ipv4":1, "predef::NetUtils.has_ipv6":1, "predef::NetUtils.ip_and_port_of":1, "predef::NetUtils.ip_in_block":1, "predef::NetUtils.ip_less_global":2, "predef::NetUtils.ip_of":1, "predef::NetUtils.ip_to_string":1, "predef::NetUtils.is_ipv6":1, "predef::NetUtils.is_local_host":2, "predef::NetUtils.local_ips":1, "predef::NetUtils.local_ips_raw":1, "predef::NetUtils.port_of":1, "predef::NetUtils.sort_addresses":1, "predef::NetUtils.valid_domain_name":1, "predef::Pike.Watchdog.add_probe":1, "predef::Stdio.Buffer.range_error":1, "predef::Stdio.Buffer.read_buffer":1, "predef::Stdio.Buffer.read_hbuffer":1, +  "bool": "predef::Crypto.DH.Parameters.validate":1, "predef::Crypto.verify_crypt_md5":1, "predef::HTTPLoop.Loop.create":1, "predef::HTTPLoop.Loop.logp":1, "predef::Image.PSD._decode":6, "predef::Image.PSD.decode_layers":2, "predef::Image.WebP.encode":6, "predef::Image.XCF._decode":5, "predef::Image.XCF.decode_layers":3, "predef::NetUtils.NetMask.ip_in":1, "predef::NetUtils.get_network_type":1, "predef::NetUtils.has_ipv4":1, "predef::NetUtils.has_ipv6":1, "predef::NetUtils.ip_and_port_of":1, "predef::NetUtils.ip_in_block":1, "predef::NetUtils.ip_less_global":2, "predef::NetUtils.ip_of":1, "predef::NetUtils.ip_to_string":1, "predef::NetUtils.is_ipv6":1, "predef::NetUtils.is_local_host":2, "predef::NetUtils.local_ips":1, "predef::NetUtils.local_ips_raw":1, "predef::NetUtils.port_of":1, "predef::NetUtils.sort_addresses":1, "predef::NetUtils.valid_domain_name":1, "predef::Pike.Watchdog.add_probe":1, "predef::Stdio.Buffer.range_error":1, "predef::Stdio.Buffer.read_buffer":1, "predef::Stdio.Buffer.read_hbuffer":1, "predef::Stdio.FakePipe.InternalSocket.read":1,    "bpn": "predef::Image.XPM._xpm_write_rows":1,    "bytes": "predef::Stdio.Buffer.read":1,    "calendar.time.set_timezone": "predef::Calendar.Timezone":1,
1405:   "predef::Stdio.Buffer.read_buffer": "bool"   "predef::Stdio.Buffer.read_hbuffer": "bool"   "predef::Stdio.Buffer.read_hstring": "read_number" + "predef::Stdio.FakePipe.InternalSocket.read": "bool"   "predef::Stdio.Fd": "_Stdio.Fd_ref"   "predef::Stdio.Fd.connect_unix": "path"   "predef::Stdio.Fd.dup2": "assign()"