[saga-rg] [Fwd: Stream Stuff (fwd)]

John Shalf jshalf at lbl.gov
Wed Dec 15 15:50:26 CST 2004


Hi Gregor,
I did not post this to the newsgroup because it was the starting
point for today's discussions.

At this point, may of these points has been resolved and changed.
(no point in posting things that are in flux).

So, everyone on the list, you might want to wait for the version
we post on the WiKI before commenting.

-john

On Dec 15, 2004, at 3:19 PM, Gregor von Laszewski wrote:

> so it does not get lost i post this here ;-)
>
> -------- Original Message --------
> Subject: Stream Stuff (fwd)
> Date: Wed, 15 Dec 2004 20:42:39 +0000 (GMT)
> From: Shantenu Jha <s.jha at ucl.ac.uk>
> To: David E. Konerding <dekonerding at lbl.gov>,   Gregor von Laszewski 
> <gregor at mcs.anl.gov>
>
>
> ---------- Forwarded message ----------
> Date: Wed, 15 Dec 2004 14:37:02 -0600
> From: John Shalf <jshalf at lbl.gov>
> To: Shantenu Jha <s.jha at ucl.ac.uk>, Andre Merzky <andre at merzky.net>,
>      Tom Goodale <goodale at cct.lsu.edu>
> Subject: Stream Stuff
>
>
> Constructing Stream (client)
> 	NewStream(host,port)
> 	NewAuthenticatedStream(host,port,security_context)
> 	NewEncryptedStream(host,port,security_context)
> 	NewFirewallBurrowingStream(target,proxy_context,security_context)
> 	CloseStream();
>
> Stacked Constructor Style (alternative contructor pattern... consistent
> with XIO pattern)
> 	NewStream(host,port)
> 	NewSSLAuthenticatedStream(stream,host,port) // pass a raw stream to
> the authenticated stream object
> 			// the raw stream gets embedded in the Authenticated Stream
> 	stream = NewStream(host,port)
> 	pstream = NewFirewallProxyStream(stream,proxy_context)
> 	sstream = NewSSLAuthenticatedStream(pstream,security_context);
>
> Operations on Stream object
> 	int s.connect() // may be necessary for inheritance and compatibility
> with the java way of doing things (also for retries)
> 	int s.read(buffer,size)
> 	jnt s.write(buffer,size)
> 	int s.status()
> 	int s.wait(timeout)
> 	int s.poll();
>
> Constructing Stream Server
> 	NewStreamServer(port);
> 	NewAuthenticatedStreamServer(port,security_context);
> 	NewEncryptedStreamServer(port,security_context);
> 	NewProxyStreamServer(proxy_context,security_context);
> 	CloseStreamServer(); // essentially a factory for streams
>
> Operations on StreamServer
> 	Stream s.pollForConnection();
> 	Stream s.waitForConnection(timeout);
> 	Stream s.acceptSecureConnection(stream_auth_info) ??
> 		// or do we getSecurityInfo() on the client stream to get info that
> can be used for authorization
>
> Operations on StreamSecurityInfo
> 	string = s.getUserName(); // if GSI, this returns a null
> 	string = s.getDN(); // if ssl, this returns a null
> 	string = s.getHost();
> 	string = s.getSourcePort();
>
> Multiplexing Constructor
> 	NewMultiplexor()
> 	CloseMultiplexor()
>
> Operations on Multiplexor
> 	watchStream(stream,flag) // {read|write|exception} flag
> 	[stream] wait(timeout)
> 	[stream] poll();  // returns array of streams
> 	Stream waitNext(timeout);
> 	Stream pollNext();
>
>
> 	
>
>





More information about the saga-rg mailing list