View Javadoc
1   /*
2    * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package com.sun.corba.se.pept.protocol;
27  
28  import com.sun.corba.se.pept.broker.Broker;
29  import com.sun.corba.se.pept.encoding.InputObject;
30  import com.sun.corba.se.pept.encoding.OutputObject;
31  import com.sun.corba.se.pept.transport.ContactInfo;
32  
33  /**
34   * <code>ClientRequestDispatcher</code> coordinates the request (and possible
35   * response) processing for a specific <em>protocol</em>.
36   *
37   * @author Harold Carr
38   */
39  public interface ClientRequestDispatcher
40  {
41      /**
42       * At the beginning of a request the presentation block uses this
43       * to obtain an
44       * {@link com.sun.corba.se.pept.encoding.OutputObject OutputObject}
45       * to set data to be sent on a message.
46       *
47       * @param self -
48       * @param methodName - the remote method name
49       * @param isOneWay - <code>true</code> if the message is asynchronous
50       * @param contactInfo - the
51       * {@link com.sun.corba.se.pept.transport.ContactInfo ContactInfo}
52       * which which created/chose this <code>ClientRequestDispatcher</code>
53       *
54       * @return
55       * {@link com.sun.corba.se.pept.encoding.OutputObject OutputObject}
56       */
57      public OutputObject beginRequest(Object self,
58                                       String methodName,
59                                       boolean isOneWay,
60                                       ContactInfo contactInfo);
61  
62      /**
63       * After the presentation block has set data on the
64       * {@link com.sun.corba.se.pept.encoding.OutputObject OutputObject}
65       * it signals the PEPt runtime to send the encoded data by calling this
66       * method.
67       *
68       * @param self -
69       * @param outputObject
70       *
71       * @return
72       * {@link com.sun.corba.se.pept.encoding.InputObject InputObject}
73       * if the message is synchronous.
74       *
75       * @throws
76       * {@link org.omg.CORBA.portable.ApplicationException ApplicationException}
77       * if the remote side raises an exception declared in the remote interface.
78       *
79       * @throws
80       * {@link org.omg.CORBA.portable.RemarshalException RemarshalException}
81       * if the PEPt runtime would like the presentation block to start over.
82       */
83      public InputObject marshalingComplete(java.lang.Object self,
84                                            OutputObject outputObject)
85      // REVISIT EXCEPTIONS
86          throws
87              org.omg.CORBA.portable.ApplicationException,
88              org.omg.CORBA.portable.RemarshalException;
89  
90      /**
91       * After the presentation block completes a request it signals
92       * the PEPt runtime by calling this method.
93       *
94       * This method may release resources.  In some cases it may cause
95       * control or error messages to be sent.
96       *
97       * @param broker -
98       * @param inputObject -
99       */
100     public void endRequest(Broker broker,
101                            java.lang.Object self,
102                            InputObject inputObject);
103 }
104 
105 // End of file.