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

on upstreamMultipleFiles (fileslist, adrspec, adrresponse) {
		<<12/9/01; 7:09:56 PM by DW
			<<fileslist is a list of adrfile's, addresses of tables in
			<<adrspec specifies an xmlStorageSystem server.
	with adrspec^ {
		local (password = string ([passwordName]));
		local (relativepathlist = {}, filetextlist = {}, filepathlist = {});
		bundle { //fill relativepathlist, filetextlist
			local (adrfile);
			for adrfile in fileslist {
				local (f = nameof (adrfile^));
				local (relativePath = adrfile^.relativePath);
				filetextlist = filetextlist + {radio.upstream.getUpstreamText (f, @relativePath)};
				relativepathlist = relativepathlist + {relativePath};
				filepathlist = filepathlist + {f}}};
		msg ("Upstreaming " + sizeof (filetextlist) + " files to " + adrspec^.server + "...");
		local (flerror, message, urllist);
		local (data = adrspec^); data.fldebug = false;
		xmlStorageSystem.writeMultipleFiles (usernum, password, relativepathlist, filetextlist, adrresponse, adrdata:@data, flShowMessages:false);
		urllist = adrresponse^.urllist;
		bundle { //record info about the files
			local (adrfile, ct = 1);
			for adrfile in fileslist {
				if urllist [ct] == "" { //this is how cloud indicates an error
					adrfile^.upstream.flError = true}
				else { //no error, increment ctUploads, set url, set flError to false
					adrfile^.upstream.url = urllist [ct];
					adrfile^.upstream.flError = false};
		msg ("")}};
bundle { //test code
	upstreamMultipleFiles (scratchpad.streams [1].files, scratchpad.streams [1].adrspec, @scratchpad.response)}

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.