OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [org/] [omg/] [CosNaming/] [_NamingContextImplBase.java] - Blame information for rev 775

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 775 jeremybenn
/* _NamingContextImplBase.java --
2
   Copyright (C) 2005 Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package org.omg.CosNaming;
40
 
41
import gnu.CORBA.Minor;
42
 
43
import org.omg.CORBA.BAD_OPERATION;
44
import org.omg.CORBA.CompletionStatus;
45
import org.omg.CORBA.DynamicImplementation;
46
import org.omg.CORBA.ObjectHelper;
47
import org.omg.CORBA.ObjectHolder;
48
import org.omg.CORBA.ServerRequest;
49
import org.omg.CORBA.portable.InputStream;
50
import org.omg.CORBA.portable.InvokeHandler;
51
import org.omg.CORBA.portable.OutputStream;
52
import org.omg.CORBA.portable.ResponseHandler;
53
import org.omg.CORBA.portable.Streamable;
54
import org.omg.CosNaming.NamingContextPackage.AlreadyBound;
55
import org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper;
56
import org.omg.CosNaming.NamingContextPackage.CannotProceed;
57
import org.omg.CosNaming.NamingContextPackage.CannotProceedHelper;
58
import org.omg.CosNaming.NamingContextPackage.InvalidName;
59
import org.omg.CosNaming.NamingContextPackage.InvalidNameHelper;
60
import org.omg.CosNaming.NamingContextPackage.NotEmpty;
61
import org.omg.CosNaming.NamingContextPackage.NotEmptyHelper;
62
import org.omg.CosNaming.NamingContextPackage.NotFound;
63
import org.omg.CosNaming.NamingContextPackage.NotFoundHelper;
64
 
65
import java.util.Hashtable;
66
 
67
/**
68
 * The naming context implementation base.
69
 *
70
 * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
71
 */
72
public abstract class _NamingContextImplBase
73
  extends DynamicImplementation
74
  implements NamingContext, InvokeHandler
75
{
76
  /**
77
   * Use serialVersionUID (v1.4) for interoperability.
78
   */
79
  private static final long serialVersionUID = -114280294134561035L;
80
 
81
  /**
82
   * As there are quite many methods, it may be sensible to use the hashtable.
83
   * This field is also reused in NamingContextPOA.
84
   */
85
  static Hashtable<String,Integer> methods = new Hashtable<String,Integer>();
86
 
87
  /**
88
   * Put all methods into the table.
89
   */
90
  static
91
  {
92
    methods.put("bind", new Integer(0));
93
    methods.put("rebind", new Integer(1));
94
    methods.put("bind_context", new Integer(2));
95
    methods.put("rebind_context", new Integer(3));
96
    methods.put("resolve", new Integer(4));
97
    methods.put("unbind", new Integer(5));
98
    methods.put("new_context", new Integer(6));
99
    methods.put("bind_new_context", new Integer(7));
100
    methods.put("destroy", new Integer(8));
101
    methods.put("list", new Integer(9));
102
  }
103
 
104
  /**
105
   * Return the array of repository ids.
106
   */
107
  public String[] _ids()
108
  {
109
    return new String[] { NamingContextHelper.id() };
110
  }
111
 
112
  /**
113
   * The server calls this method after receiving the request message
114
   * from client. The implementation base calls one of its abstract
115
   * methods to perform the requested operation.
116
   *
117
   * @param method the method being invoked.
118
   * @param in the stream to read parameters from.
119
   * @param rh the handler to get a stream for writing a response.
120
   *
121
   * @return the stream, returned by the handler.
122
   */
123
  public OutputStream _invoke(String method, InputStream in, ResponseHandler rh)
124
  {
125
    OutputStream out = null;
126
    Integer call_method = methods.get(method);
127
    if (call_method == null)
128
      throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
129
 
130
    switch (call_method.intValue())
131
      {
132
        case 0 : // bind
133
        {
134
          try
135
            {
136
              NameComponent[] a_name = NameHelper.read(in);
137
              org.omg.CORBA.Object an_object = ObjectHelper.read(in);
138
              bind(a_name, an_object);
139
              out = rh.createReply();
140
            }
141
          catch (NotFound ex)
142
            {
143
              out = rh.createExceptionReply();
144
              NotFoundHelper.write(out, ex);
145
            }
146
          catch (CannotProceed ex)
147
            {
148
              out = rh.createExceptionReply();
149
              CannotProceedHelper.write(out, ex);
150
            }
151
          catch (InvalidName ex)
152
            {
153
              out = rh.createExceptionReply();
154
              InvalidNameHelper.write(out, ex);
155
            }
156
          catch (AlreadyBound ex)
157
            {
158
              out = rh.createExceptionReply();
159
              AlreadyBoundHelper.write(out, ex);
160
            }
161
          break;
162
        }
163
 
164
        case 1 : // rebind
165
        {
166
          try
167
            {
168
              NameComponent[] a_name = NameHelper.read(in);
169
              org.omg.CORBA.Object an_object = ObjectHelper.read(in);
170
              rebind(a_name, an_object);
171
              out = rh.createReply();
172
            }
173
          catch (NotFound ex)
174
            {
175
              out = rh.createExceptionReply();
176
              NotFoundHelper.write(out, ex);
177
            }
178
          catch (CannotProceed ex)
179
            {
180
              out = rh.createExceptionReply();
181
              CannotProceedHelper.write(out, ex);
182
            }
183
          catch (InvalidName ex)
184
            {
185
              out = rh.createExceptionReply();
186
              InvalidNameHelper.write(out, ex);
187
            }
188
          break;
189
        }
190
 
191
        case 2 : // bind_context
192
        {
193
          try
194
            {
195
              NameComponent[] a_name = NameHelper.read(in);
196
              NamingContext a_context = NamingContextHelper.read(in);
197
              bind_context(a_name, a_context);
198
              out = rh.createReply();
199
            }
200
          catch (NotFound ex)
201
            {
202
              out = rh.createExceptionReply();
203
              NotFoundHelper.write(out, ex);
204
            }
205
          catch (CannotProceed ex)
206
            {
207
              out = rh.createExceptionReply();
208
              CannotProceedHelper.write(out, ex);
209
            }
210
          catch (InvalidName ex)
211
            {
212
              out = rh.createExceptionReply();
213
              InvalidNameHelper.write(out, ex);
214
            }
215
          catch (AlreadyBound ex)
216
            {
217
              out = rh.createExceptionReply();
218
              AlreadyBoundHelper.write(out, ex);
219
            }
220
          break;
221
        }
222
 
223
        case 3 : // rebind_context
224
        {
225
          try
226
            {
227
              NameComponent[] a_name = NameHelper.read(in);
228
              NamingContext a_context = NamingContextHelper.read(in);
229
              rebind_context(a_name, a_context);
230
              out = rh.createReply();
231
            }
232
          catch (NotFound ex)
233
            {
234
              out = rh.createExceptionReply();
235
              NotFoundHelper.write(out, ex);
236
            }
237
          catch (CannotProceed ex)
238
            {
239
              out = rh.createExceptionReply();
240
              CannotProceedHelper.write(out, ex);
241
            }
242
          catch (InvalidName ex)
243
            {
244
              out = rh.createExceptionReply();
245
              InvalidNameHelper.write(out, ex);
246
            }
247
          break;
248
        }
249
 
250
        case 4 : // resolve
251
        {
252
          try
253
            {
254
              NameComponent[] a_name = NameHelper.read(in);
255
              org.omg.CORBA.Object __result = null;
256
              __result = resolve(a_name);
257
              out = rh.createReply();
258
              ObjectHelper.write(out, __result);
259
            }
260
          catch (NotFound ex)
261
            {
262
              out = rh.createExceptionReply();
263
              NotFoundHelper.write(out, ex);
264
            }
265
          catch (CannotProceed ex)
266
            {
267
              out = rh.createExceptionReply();
268
              CannotProceedHelper.write(out, ex);
269
            }
270
          catch (InvalidName ex)
271
            {
272
              out = rh.createExceptionReply();
273
              InvalidNameHelper.write(out, ex);
274
            }
275
          break;
276
        }
277
 
278
        case 5 : // unbind
279
        {
280
          try
281
            {
282
              NameComponent[] a_name = NameHelper.read(in);
283
              unbind(a_name);
284
              out = rh.createReply();
285
            }
286
          catch (NotFound ex)
287
            {
288
              out = rh.createExceptionReply();
289
              NotFoundHelper.write(out, ex);
290
            }
291
          catch (CannotProceed ex)
292
            {
293
              out = rh.createExceptionReply();
294
              CannotProceedHelper.write(out, ex);
295
            }
296
          catch (InvalidName ex)
297
            {
298
              out = rh.createExceptionReply();
299
              InvalidNameHelper.write(out, ex);
300
            }
301
          break;
302
        }
303
 
304
        case 6 : // new_context
305
        {
306
          NamingContext __result = null;
307
          __result = new_context();
308
          out = rh.createReply();
309
          NamingContextHelper.write(out, __result);
310
          break;
311
        }
312
 
313
        case 7 : // bind_new_context
314
        {
315
          try
316
            {
317
              NameComponent[] a_name = NameHelper.read(in);
318
              NamingContext __result = null;
319
              __result = bind_new_context(a_name);
320
              out = rh.createReply();
321
              NamingContextHelper.write(out, __result);
322
            }
323
          catch (NotFound ex)
324
            {
325
              out = rh.createExceptionReply();
326
              NotFoundHelper.write(out, ex);
327
            }
328
          catch (AlreadyBound ex)
329
            {
330
              out = rh.createExceptionReply();
331
              AlreadyBoundHelper.write(out, ex);
332
            }
333
          catch (CannotProceed ex)
334
            {
335
              out = rh.createExceptionReply();
336
              CannotProceedHelper.write(out, ex);
337
            }
338
          catch (InvalidName ex)
339
            {
340
              out = rh.createExceptionReply();
341
              InvalidNameHelper.write(out, ex);
342
            }
343
          break;
344
        }
345
 
346
        case 8 : // destroy
347
        {
348
          try
349
            {
350
              destroy();
351
              out = rh.createReply();
352
            }
353
          catch (NotEmpty ex)
354
            {
355
              out = rh.createExceptionReply();
356
              NotEmptyHelper.write(out, ex);
357
            }
358
          break;
359
        }
360
 
361
        case 9 : // list
362
        {
363
          int amount = in.read_ulong();
364
          BindingListHolder a_list = new BindingListHolder();
365
          BindingIteratorHolder an_iter = new BindingIteratorHolder();
366
          list(amount, a_list, an_iter);
367
          out = rh.createReply();
368
          BindingListHelper.write(out, a_list.value);
369
          BindingIteratorHelper.write(out, an_iter.value);
370
          break;
371
        }
372
 
373
        default :
374
          throw new BAD_OPERATION(0, CompletionStatus.COMPLETED_MAYBE);
375
      }
376
 
377
    return out;
378
  }
379
 
380
  /**
381
   * The obsolete invocation using server request. Implemented for
382
   * compatibility reasons, but is it more effectinve to use
383
   * {@link #_invoke}.
384
   *
385
   * @param request a server request.
386
   */
387
  public void invoke(ServerRequest request)
388
  {
389
    Streamable result = null;
390
 
391
    // The server request contains no required result type.
392
    Integer call_method = methods.get(request.operation());
393
    if (call_method == null)
394
      throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
395
 
396
    switch (call_method.intValue())
397
      {
398
        case 4 : // resolve, object
399
          result = new ObjectHolder();
400
          break;
401
 
402
        case 6 : // new_context, NamingContext
403
        case 7 : // bind_new_context, NamingContext
404
        {
405
          result = new NamingContextHolder();
406
          break;
407
        }
408
 
409
        default : // void for others.
410
          result = null;
411
      }
412
 
413
    gnu.CORBA.ServiceRequestAdapter.invoke(request, this, result);
414
  }
415
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.