| /* Request.java -- |
| Copyright (C) 2005 Free Software Foundation, Inc. |
| |
| This file is part of GNU Classpath. |
| |
| GNU Classpath is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2, or (at your option) |
| any later version. |
| |
| GNU Classpath is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GNU Classpath; see the file COPYING. If not, write to the |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
| 02110-1301 USA. |
| |
| Linking this library statically or dynamically with other modules is |
| making a combined work based on this library. Thus, the terms and |
| conditions of the GNU General Public License cover the whole |
| combination. |
| |
| As a special exception, the copyright holders of this library give you |
| permission to link this library with independent modules to produce an |
| executable, regardless of the license terms of these independent |
| modules, and to copy and distribute the resulting executable under |
| terms of your choice, provided that you also meet, for each linked |
| independent module, the terms and conditions of the license of that |
| module. An independent module is a module which is not derived from |
| or based on this library. If you modify this library, you may extend |
| this exception to your version of the library, but you are not |
| obligated to do so. If you do not wish to do so, delete this |
| exception statement from your version. */ |
| |
| |
| package org.omg.CORBA; |
| |
| |
| /** |
| * An object, containing the information, needed to invoke the method of |
| * the local or remote CORBA object. The Request is used in |
| * Dynamic Invocation Interface (DII) which allows dynamic creation of |
| * requests. |
| * |
| * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) |
| */ |
| public abstract class Request |
| { |
| /** |
| * Add the named input parameter that passes value to |
| * the method being invoked. This is similar to the "passing by value" |
| * conception. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_in_arg(); |
| |
| /** |
| * Add the input/output parameter that passes value both to and from |
| * the method being invoked. This is similar to the "passing by reference" |
| * conception. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_inout_arg(); |
| |
| /** |
| * Add the named input parameter that passes value to |
| * the method being invoked. This is similar to the "passing by value" |
| * conception. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @param name the parameter name. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_named_in_arg(String name); |
| |
| /** |
| * Add the named input/output parameter that passes value both to and from |
| * the method being invoked. This is similar to the "passing by reference" |
| * conception. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @param name the parameter name. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_named_inout_arg(String name); |
| |
| /** |
| * Add the named output parameter that passes value from |
| * the method being invoked. Differently from the java |
| * language, the CORBA IDL method can return multiple values. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @param name the parameter name. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_named_out_arg(String name); |
| |
| /** |
| * Add the output parameter that passes value from |
| * the method being invoked. Differently from the java |
| * language, the CORBA IDL method can return multiple values. |
| * |
| * The created parameter is returned allowing to set the value. |
| * |
| * @return the created parameter. |
| */ |
| public abstract Any add_out_arg(); |
| |
| /** |
| * Return the list of all previously added parameters. |
| * |
| * @return the list of parameters. |
| */ |
| public abstract NVList arguments(); |
| |
| /** |
| * Get the context list object for this request. |
| * |
| * @return a list of strings that must be resolved and sent with the |
| * invocation. |
| */ |
| public abstract ContextList contexts(); |
| |
| /** |
| * Get the context, previously set using {@link #cts(Context)}. |
| * The context contains the details about this request. |
| */ |
| public abstract Context ctx(); |
| |
| /** |
| * Set the context that shuld be later returned by {@link #ctx()}. |
| * This context contains the details about this request. |
| * |
| * @param a_context a context to set. |
| */ |
| public abstract void ctx(Context a_context); |
| |
| /** |
| * Returns the container, eclosing an exception that the invoked method |
| * has thrown. |
| * |
| * @return the Environment object, containng the exception. |
| */ |
| public abstract Environment env(); |
| |
| /** |
| * List the exceptions that may be thrown by the CORBA object method being |
| * invoked. |
| * |
| * @return the list of exceptions. |
| */ |
| public abstract ExceptionList exceptions(); |
| |
| /** |
| * Allow to access the response that has been previously sent using |
| * {@link send_deferred()}. |
| * |
| * @throws WrongTransaction if the transaction scope mismatches. |
| */ |
| public abstract void get_response() |
| throws WrongTransaction; |
| |
| /** |
| * Submit the request, suspending the current thread until the |
| * answer is received. |
| */ |
| public abstract void invoke(); |
| |
| /** |
| * Get the name of the method being invoked. |
| * |
| * @return the name of the method being invoked. |
| */ |
| public abstract String operation(); |
| |
| /** |
| * Check if the response is received to the request that was |
| * previously send using {@link send_deferred()}. |
| * |
| * @return true if the response has been already received, false otherwise. |
| */ |
| public abstract boolean poll_response(); |
| |
| /** |
| * Get the value, returned by the method, together with its name. |
| * |
| * @return the value, returned by the method. |
| */ |
| public abstract NamedValue result(); |
| |
| /** |
| * Get the value, returned by the method. |
| * |
| * @return the value, returned by the method. |
| */ |
| public abstract Any return_value(); |
| |
| /** |
| * Send a request without suspending the current thread. |
| * |
| * Allow later check of the request status by {@link #poll_response()} and |
| * retrieving the results by {@link #get_response()}. |
| */ |
| public abstract void send_deferred(); |
| |
| /** |
| * Send a request and forget about it, not waiting for a response. |
| * This can be done also for methods that normally are expected |
| * to return some values. |
| */ |
| public abstract void send_oneway(); |
| |
| /** |
| * Set the return type. |
| * |
| * @param returns the type of the value, returned in response to this |
| * request. |
| */ |
| public abstract void set_return_type(TypeCode returns); |
| |
| /** |
| * Return the CORBA object on that the method would be invoked. |
| * |
| * @return the invocation target. |
| */ |
| public abstract org.omg.CORBA.Object target(); |
| } |