1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 import java.util.Vector;
25 
26 // __________ Implementation __________
27 
28 /**
29  * We need a generic interface to forward any oneway uno interface method
30  * by using threads to the original object. Reason:
31  * It's not allowed to call synchronoues back to the office if a java object
32  * was called in a oneway declared interface method. Then it must be
33  * executed asynchronoues. To do so - a thread can be created which use this
34  * interface. It get the object, which whis to be called back and the type and
35  * parameter of the original request.
36  *
37  * @author     Andreas Schlüns
38  * @created    17.07.2002 08:09
39  */
40 public interface IOnewayLink
41 {
42     // _______________________________
43 
44     /**
45      * @param nRequest
46      *          The two user of this callback can define an unique number,
47      *          which identify the type of original interface method. So the called
48      *          interface object can decide, which action will be neccessary.
49      *
50      * @param lParams
51      *          If the original method used parameters, they will be coded here in
52      *          a generic way. Only the called interface object know (it depends
53      *          from the original request - see nRequest too), how this list must
54      *          be interpreted.
55      *          Note: Atomic types (e.g. int, long) will be transported as objects
56      *          too (Integer, Long)!
57      */
58     public abstract void execOneway( int nRequest, Vector lParams );
59 }
60