
User: svn_ceriel Date: 2010/08/26 10:36 AM Modified: /trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/ Stream.java, StreamServer.java Log: Updated stream/streamserver specification as specified in Sagaspec 1.1: added connect() to streamserver, added timeout to stream connect(). File Changes: Directory: /trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/ ============================================================================================= File [modified]: Stream.java Delta lines: +52 -0 =================================================================== --- trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/Stream.java 2010-07-14 09:15:03 UTC (rev 1282) +++ trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/Stream.java 2010-08-26 15:35:55 UTC (rev 1283) @@ -193,6 +193,42 @@ TimeoutException, NoSuccessException; /** + * Establishes a connection to the target defined during the construction of + * the stream. + * @param timeoutInSeconds + * the timeout in seconds. + * @exception NotImplementedException + * is thrown if the implementation does not provide an + * implementation of this method. + * @exception PermissionDeniedException + * is thrown when the method failed because the identity used did + * not have sufficient permissions to perform the operation + * successfully. + * @exception AuthorizationFailedException + * is thrown when none of the available contexts of the + * used session could be used for successful authorization. + * This error indicates that the resource could not be accessed + * at all, and not that an operation was not available due to + * restricted permissions. + * @exception AuthenticationFailedException + * is thrown when operation failed because none of the available + * session contexts could successfully be used for authentication. + * @exception TimeoutException + * is thrown when a remote operation did not complete successfully + * because the network communication or the remote service timed + * out. + * @exception IncorrectStateException + * is thrown when the stream is already closed. + * @exception NoSuccessException + * is thrown when the operation was not successfully performed, + * and none of the other exceptions apply. + */ + public void connect(float timeoutInSeconds) throws NotImplementedException, + AuthenticationFailedException, AuthorizationFailedException, + PermissionDeniedException, IncorrectStateException, + TimeoutException, NoSuccessException; + + /** * Checks if the stream is ready for I/O, or if it has entered the ERROR * state. It will only check for the specified activities. This method * blocks until one or more of the specified activities apply. @@ -623,6 +659,22 @@ throws NotImplementedException; /** + * Returns a task that establishes a connection to the target defined during + * the construction of the stream. + * + * @param mode + * the task mode. + * @param timeoutInSeconds + * the timeout in seconds. + * @return the task. + * @exception NotImplementedException + * is thrown when the task version of this method is not + * implemented. + */ + public Task<Stream, Void> connect(TaskMode mode, float timeoutInSeconds) + throws NotImplementedException; + + /** * Returns a task that checks if the stream is ready for I/O, or if it has * entered the ERROR state. It will only check for the specified activities. * File [modified]: StreamServer.java Delta lines: +102 -2 =================================================================== --- trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/StreamServer.java 2010-07-14 09:15:03 UTC (rev 1282) +++ trunk/documents/saga-core-binding-java/implementation/VU/src/org/ogf/saga/stream/StreamServer.java 2010-08-26 15:35:55 UTC (rev 1283) @@ -16,8 +16,8 @@ import org.ogf.saga.url.URL; /** - * A <code>StreamServer</code> object establishes a listening/server object - * that waits for client connections. It is similar to a serversocket. + * A <code>StreamServer</code> object represents an endpoint for + * a listening/server object that waits for client connections. */ public interface StreamServer extends SagaObject, Async, AsyncMonitorable<StreamServer>, Permissions<StreamServer> { @@ -103,6 +103,78 @@ TimeoutException, NoSuccessException; /** + * Establishes a connection to the stream server. + * @return + * the resulting stream. + * @exception NotImplementedException + * is thrown if the implementation does not provide an + * implementation of this method. + * @exception PermissionDeniedException + * is thrown when the method failed because the identity used did + * not have sufficient permissions to perform the operation + * successfully. + * @exception AuthorizationFailedException + * is thrown when none of the available contexts of the + * used session could be used for successful authorization. + * This error indicates that the resource could not be accessed + * at all, and not that an operation was not available due to + * restricted permissions. + * @exception AuthenticationFailedException + * is thrown when operation failed because none of the available + * session contexts could successfully be used for authentication. + * @exception TimeoutException + * is thrown when a remote operation did not complete successfully + * because the network communication or the remote service timed + * out. + * @exception IncorrectStateException + * is thrown when the stream is already closed. + * @exception NoSuccessException + * is thrown when the operation was not successfully performed, + * and none of the other exceptions apply. + */ + public Stream connect() throws NotImplementedException, + AuthenticationFailedException, AuthorizationFailedException, + PermissionDeniedException, IncorrectStateException, + TimeoutException, NoSuccessException; + + /** + * Establishes a connection to the stream server. + * @param timeoutInSeconds + * the timeout in seconds. + * @return + * the resulting stream. + * @exception NotImplementedException + * is thrown if the implementation does not provide an + * implementation of this method. + * @exception PermissionDeniedException + * is thrown when the method failed because the identity used did + * not have sufficient permissions to perform the operation + * successfully. + * @exception AuthorizationFailedException + * is thrown when none of the available contexts of the + * used session could be used for successful authorization. + * This error indicates that the resource could not be accessed + * at all, and not that an operation was not available due to + * restricted permissions. + * @exception AuthenticationFailedException + * is thrown when operation failed because none of the available + * session contexts could successfully be used for authentication. + * @exception TimeoutException + * is thrown when a remote operation did not complete successfully + * because the network communication or the remote service timed + * out. + * @exception IncorrectStateException + * is thrown when the stream is already closed. + * @exception NoSuccessException + * is thrown when the operation was not successfully performed, + * and none of the other exceptions apply. + */ + public Stream connect(float timeoutInSeconds) throws NotImplementedException, + AuthenticationFailedException, AuthorizationFailedException, + PermissionDeniedException, IncorrectStateException, + TimeoutException, NoSuccessException; + + /** * Waits for incoming client connections (like an accept of a serversocket). * The returned stream is in OPEN state. * @@ -216,6 +288,34 @@ float timeoutInSeconds) throws NotImplementedException; /** + * Returns a task that establishes a connection to the stream server. + * + * @param mode + * the task mode. + * @return the task. + * @exception NotImplementedException + * is thrown when the task version of this method is not + * implemented. + */ + public Task<StreamServer, Stream> connect(TaskMode mode) + throws NotImplementedException; + + /** + * Returns a task that establishes a connection to the stream server. + * + * @param mode + * the task mode. + * @param timeoutInSeconds + * the timeout in seconds. + * @return the task. + * @exception NotImplementedException + * is thrown when the task version of this method is not + * implemented. + */ + public Task<StreamServer, Stream> connect(TaskMode mode, float timeoutInSeconds) + throws NotImplementedException; + + /** * Obtains a task that closes a stream server. * * @param mode