Monday, November 08, 2010 at 12:06 AM.

system.verbs.builtins.tcp.ftp.read

on read (stream) {
	local {
		status, bytesPending;
		buffer;
		start = clock.now()};
	loop {
		if clock.now() > start + 30 { // force a timeout for now
			scriptError ("Timeout in read loop")};
		status = tcp.statusStream (stream, @bytesPending);
		case status {
			"DATA" {
				return (tcp.readStream (stream, bytesPending))};
			"CLOSED";
			"INACTIVE" {
				break};
			"OPEN" {
				continue}};
		tcp.ftp.yieldProcessor ()}}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.