4
|
1 |
/*
|
5555
|
2 |
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
|
4
|
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
|
5555
|
7 |
* published by the Free Software Foundation. Oracle designates this
|
4
|
8 |
* particular file as subject to the "Classpath" exception as provided
|
5555
|
9 |
* by Oracle in the LICENSE file that accompanied this code.
|
4
|
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 |
*
|
5555
|
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.
|
4
|
24 |
*/
|
|
25 |
package com.sun.corba.se.impl.encoding;
|
|
26 |
|
|
27 |
import java.io.IOException;
|
|
28 |
import java.io.Serializable;
|
|
29 |
import java.math.BigDecimal;
|
|
30 |
import java.nio.ByteBuffer;
|
|
31 |
|
|
32 |
import org.omg.CORBA.TypeCode;
|
|
33 |
import org.omg.CORBA.Principal;
|
|
34 |
import org.omg.CORBA.Any;
|
|
35 |
|
|
36 |
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
|
|
37 |
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
38 |
import com.sun.org.omg.SendingContext.CodeBase;
|
|
39 |
|
|
40 |
/**
|
|
41 |
* Describes CDRInputStream delegates and provides some
|
|
42 |
* implementation. Non-default constructors are avoided in
|
|
43 |
* the delegation to separate instantiation from initialization,
|
|
44 |
* so we use init methods.
|
|
45 |
*/
|
|
46 |
abstract class CDRInputStreamBase extends java.io.InputStream
|
|
47 |
{
|
|
48 |
protected CDRInputStream parent;
|
|
49 |
|
|
50 |
public void setParent(CDRInputStream parent) {
|
|
51 |
this.parent = parent;
|
|
52 |
}
|
|
53 |
|
|
54 |
public abstract void init(org.omg.CORBA.ORB orb,
|
|
55 |
ByteBuffer byteBuffer,
|
|
56 |
int size,
|
|
57 |
boolean littleEndian,
|
|
58 |
BufferManagerRead bufferManager);
|
|
59 |
|
|
60 |
// org.omg.CORBA.portable.InputStream
|
|
61 |
public abstract boolean read_boolean();
|
|
62 |
public abstract char read_char();
|
|
63 |
public abstract char read_wchar();
|
|
64 |
public abstract byte read_octet();
|
|
65 |
public abstract short read_short();
|
|
66 |
public abstract short read_ushort();
|
|
67 |
public abstract int read_long();
|
|
68 |
public abstract int read_ulong();
|
|
69 |
public abstract long read_longlong();
|
|
70 |
public abstract long read_ulonglong();
|
|
71 |
public abstract float read_float();
|
|
72 |
public abstract double read_double();
|
|
73 |
public abstract String read_string();
|
|
74 |
public abstract String read_wstring();
|
|
75 |
public abstract void read_boolean_array(boolean[] value, int offset, int length);
|
|
76 |
public abstract void read_char_array(char[] value, int offset, int length);
|
|
77 |
public abstract void read_wchar_array(char[] value, int offset, int length);
|
|
78 |
public abstract void read_octet_array(byte[] value, int offset, int length);
|
|
79 |
public abstract void read_short_array(short[] value, int offset, int length);
|
|
80 |
public abstract void read_ushort_array(short[] value, int offset, int length);
|
|
81 |
public abstract void read_long_array(int[] value, int offset, int length);
|
|
82 |
public abstract void read_ulong_array(int[] value, int offset, int length);
|
|
83 |
public abstract void read_longlong_array(long[] value, int offset, int length);
|
|
84 |
public abstract void read_ulonglong_array(long[] value, int offset, int length);
|
|
85 |
public abstract void read_float_array(float[] value, int offset, int length);
|
|
86 |
public abstract void read_double_array(double[] value, int offset, int length);
|
|
87 |
public abstract org.omg.CORBA.Object read_Object();
|
|
88 |
public abstract TypeCode read_TypeCode();
|
|
89 |
public abstract Any read_any();
|
|
90 |
public abstract Principal read_Principal();
|
|
91 |
public int read() throws java.io.IOException {
|
|
92 |
throw new org.omg.CORBA.NO_IMPLEMENT();
|
|
93 |
}
|
|
94 |
public abstract java.math.BigDecimal read_fixed();
|
|
95 |
public org.omg.CORBA.Context read_Context() {
|
|
96 |
throw new org.omg.CORBA.NO_IMPLEMENT();
|
|
97 |
}
|
|
98 |
public abstract org.omg.CORBA.Object read_Object(java.lang.Class clz);
|
|
99 |
public abstract org.omg.CORBA.ORB orb();
|
|
100 |
|
|
101 |
// org.omg.CORBA_2_3.portable.InputStream
|
|
102 |
public abstract java.io.Serializable read_value();
|
|
103 |
public abstract java.io.Serializable read_value(java.lang.Class clz);
|
|
104 |
public abstract java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory);
|
|
105 |
public abstract java.io.Serializable read_value(java.lang.String rep_id);
|
|
106 |
public abstract java.io.Serializable read_value(java.io.Serializable value);
|
|
107 |
public abstract java.lang.Object read_abstract_interface();
|
|
108 |
public abstract java.lang.Object read_abstract_interface(java.lang.Class clz);
|
|
109 |
|
|
110 |
// com.sun.corba.se.impl.encoding.MarshalInputStream
|
|
111 |
public abstract void consumeEndian();
|
|
112 |
public abstract int getPosition();
|
|
113 |
|
|
114 |
// org.omg.CORBA.DataInputStream
|
|
115 |
public abstract java.lang.Object read_Abstract ();
|
|
116 |
public abstract java.io.Serializable read_Value ();
|
|
117 |
public abstract void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length);
|
|
118 |
public abstract void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length);
|
|
119 |
public abstract void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length);
|
|
120 |
public abstract void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length);
|
|
121 |
public abstract void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length);
|
|
122 |
public abstract void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length);
|
|
123 |
public abstract void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length);
|
|
124 |
public abstract void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length);
|
|
125 |
public abstract void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length);
|
|
126 |
public abstract void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length);
|
|
127 |
public abstract void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length);
|
|
128 |
public abstract void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length);
|
|
129 |
public abstract void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length);
|
|
130 |
|
|
131 |
// org.omg.CORBA.portable.ValueBase
|
|
132 |
public abstract String[] _truncatable_ids();
|
|
133 |
|
|
134 |
// java.io.InputStream
|
|
135 |
// REVISIT - should we make these throw UnsupportedOperationExceptions?
|
|
136 |
// Right now, they'll go up to the java.io versions!
|
|
137 |
|
|
138 |
// public abstract int read(byte b[]) throws IOException;
|
|
139 |
// public abstract int read(byte b[], int off, int len) throws IOException
|
|
140 |
// public abstract long skip(long n) throws IOException;
|
|
141 |
// public abstract int available() throws IOException;
|
|
142 |
// public abstract void close() throws IOException;
|
|
143 |
public abstract void mark(int readlimit);
|
|
144 |
public abstract void reset();
|
|
145 |
|
|
146 |
// This should return false so that outside users (people using the JDK)
|
|
147 |
// don't have any guarantees that mark/reset will work in their
|
|
148 |
// custom marshaling code. This is necessary since they could do things
|
|
149 |
// like expect obj1a == obj1b in the following code:
|
|
150 |
//
|
|
151 |
// is.mark(10000);
|
|
152 |
// Object obj1a = is.readObject();
|
|
153 |
// is.reset();
|
|
154 |
// Object obj1b = is.readObject();
|
|
155 |
//
|
|
156 |
public boolean markSupported() { return false; }
|
|
157 |
|
|
158 |
// Needed by AnyImpl and ServiceContexts
|
|
159 |
public abstract CDRInputStreamBase dup();
|
|
160 |
|
|
161 |
// Needed by TCUtility
|
|
162 |
public abstract java.math.BigDecimal read_fixed(short digits, short scale);
|
|
163 |
|
|
164 |
// Needed by TypeCodeImpl
|
|
165 |
public abstract boolean isLittleEndian();
|
|
166 |
|
|
167 |
// Needed by request and reply messages for GIOP versions >= 1.2 only.
|
|
168 |
abstract void setHeaderPadding(boolean headerPadding);
|
|
169 |
|
|
170 |
// Needed by IIOPInputStream and other subclasses
|
|
171 |
|
|
172 |
public abstract ByteBuffer getByteBuffer();
|
|
173 |
public abstract void setByteBuffer(ByteBuffer byteBuffer);
|
|
174 |
|
|
175 |
public abstract void setByteBufferWithInfo(ByteBufferWithInfo bbwi);
|
|
176 |
|
|
177 |
public abstract int getBufferLength();
|
|
178 |
public abstract void setBufferLength(int value);
|
|
179 |
|
|
180 |
public abstract int getIndex();
|
|
181 |
public abstract void setIndex(int value);
|
|
182 |
|
|
183 |
public abstract void orb(org.omg.CORBA.ORB orb);
|
|
184 |
|
|
185 |
public abstract BufferManagerRead getBufferManager();
|
|
186 |
public abstract GIOPVersion getGIOPVersion();
|
|
187 |
|
|
188 |
abstract CodeBase getCodeBase();
|
|
189 |
|
|
190 |
abstract void printBuffer();
|
|
191 |
|
|
192 |
abstract void alignOnBoundary(int octetBoundary);
|
|
193 |
|
|
194 |
abstract void performORBVersionSpecificInit();
|
|
195 |
|
|
196 |
public abstract void resetCodeSetConverters();
|
|
197 |
|
|
198 |
// ValueInputStream -------------------------
|
|
199 |
public abstract void start_value();
|
|
200 |
public abstract void end_value();
|
|
201 |
}
|