[saga-rg] [Fwd: Stream Stuff (fwd)]
Gregor von Laszewski
gregor at mcs.anl.gov
Wed Dec 15 15:19:23 CST 2004
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