summaryrefslogtreecommitdiff
path: root/java/src/Ice/InputStream.java
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2015-03-03 17:30:50 -0500
committerJoe George <joe@zeroc.com>2015-05-12 11:41:55 -0400
commitd35bb9f5c19e34aee31f83d445695a8186ef675e (patch)
treed5324eaf44f5f9776495537c51653f50a66a7237 /java/src/Ice/InputStream.java
downloadice-d35bb9f5c19e34aee31f83d445695a8186ef675e.tar.bz2
ice-d35bb9f5c19e34aee31f83d445695a8186ef675e.tar.xz
ice-d35bb9f5c19e34aee31f83d445695a8186ef675e.zip
Ice 3.4.2 Source Distributionv3.4.2
Diffstat (limited to 'java/src/Ice/InputStream.java')
-rw-r--r--java/src/Ice/InputStream.java251
1 files changed, 251 insertions, 0 deletions
diff --git a/java/src/Ice/InputStream.java b/java/src/Ice/InputStream.java
new file mode 100644
index 00000000000..247bc7ddbc9
--- /dev/null
+++ b/java/src/Ice/InputStream.java
@@ -0,0 +1,251 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package Ice;
+
+/**
+ * Interface for input streams used to extract Slice types from a sequence
+ * of bytes.
+ *
+ * @see OutputStream
+ **/
+public interface InputStream
+{
+ /**
+ * Returns the communicator for this input stream.
+ *
+ * @return The communicator.
+ **/
+ Communicator communicator();
+
+ /**
+ * Determines the behavior of the stream when extracting Slice objects.
+ * A Slice object is "sliced" when a factory cannot be found for a Slice type ID.
+ *
+ * @param slice If <code>true</code> (the default), slicing is enabled; if <code>false</code>,
+ * slicing is disabled. If slicing is disabled and the stream encounters a Slice type ID
+ * during decoding for which no object factory is installed, it raises {@link NoObjectFactoryException}.
+ **/
+ void sliceObjects(boolean slice);
+
+ /**
+ * Extracts a boolean value from the stream.
+ *
+ * @return The extracted boolean.
+ **/
+ boolean readBool();
+
+ /**
+ * Extracts a sequence of boolean values from the stream.
+ *
+ * @return The extracted boolean sequence.
+ **/
+ boolean[] readBoolSeq();
+
+ /**
+ * Extracts a byte value from the stream.
+ *
+ * @return The extracted byte.
+ **/
+ byte readByte();
+
+ /**
+ * Extracts a sequence of byte values from the stream.
+ *
+ * @return The extracted byte sequence.
+ **/
+ byte[] readByteSeq();
+
+ /**
+ * Extracts a serializable Java object from the stream.
+ *
+ * @return The deserialized Java object.
+ **/
+ java.io.Serializable readSerializable();
+
+ /**
+ * Extracts a short value from the stream.
+ *
+ * @return The extracted short value.
+ **/
+ short readShort();
+
+ /**
+ * Extracts a sequence of short values from the stream.
+ *
+ * @return The extracted short sequence.
+ **/
+ short[] readShortSeq();
+
+ /**
+ * Extracts an integer value from the stream.
+ *
+ * @return The extracted integer.
+ **/
+ int readInt();
+
+ /**
+ * Extracts a sequence of integer values from the stream.
+ *
+ * @return The extracted integer sequence.
+ **/
+ int[] readIntSeq();
+
+ /**
+ * Extracts a long value from the stream.
+ *
+ * @return The extracted long value.
+ **/
+ long readLong();
+
+ /**
+ * Extracts a sequence of long values from the stream.
+ *
+ * @return The extracted long sequence.
+ **/
+ long[] readLongSeq();
+
+ /**
+ * Extracts a float value from the stream.
+ *
+ * @return The extracted float value.
+ **/
+ float readFloat();
+
+ /**
+ * Extracts a sequence of float values from the stream.
+ *
+ * @return The extracted float sequence.
+ **/
+ float[] readFloatSeq();
+
+ /**
+ * Extracts a double value from the stream.
+ *
+ * @return The extracted double value.
+ **/
+ double readDouble();
+
+ /**
+ * Extracts a sequence of double values from the stream.
+ *
+ * @return The extracted float sequence.
+ **/
+ double[] readDoubleSeq();
+
+ /**
+ * Extracts a string from the stream.
+ *
+ * @return The extracted string.
+ **/
+ String readString();
+
+ /**
+ * Extracts a string sequence from the stream.
+ *
+ * @return The extracted string sequence.
+ */
+ String[] readStringSeq();
+
+ /**
+ * Extracts a size from the stream.
+ *
+ * @return The extracted size.
+ **/
+ int readSize();
+
+ /**
+ * Extracts and check a sequence size from the stream. The check ensures not too much memory will
+ * be pre-allocated for the sequence.
+ *
+ * @param minSize The minimum size of an element of the sequence.
+ *
+ * @return The extracted size.
+ **/
+ int readAndCheckSeqSize(int minSize);
+
+ /**
+ * Extracts a proxy from the stream.
+ *
+ * @return The extracted proxy.
+ **/
+ ObjectPrx readProxy();
+
+ /**
+ * Extracts the index of a Slice class from the stream.
+ *
+ * @param cb The callback to notify the application when the extracted instance is available.
+ * The Ice run time extracts Slice classes in stages. The Ice run time calls {@link ReadObjectCallback#invoke}
+ * when the corresponding instance has been fully unmarshaled.
+ *
+ * @see ReadObjectCallback
+ **/
+ void readObject(ReadObjectCallback cb);
+
+ /**
+ * Extracts a Slice type ID from the stream.
+ *
+ * @return The extracted type ID.
+ **/
+ String readTypeId();
+
+ /**
+ * Extracts a user exception from the stream and throws it.
+ **/
+ void throwException() throws UserException;
+
+ /**
+ * Reads the start of an object or exception slice.
+ **/
+ void startSlice();
+
+ /**
+ * Indicates that the end of an object or exception slice has been reached.
+ **/
+ void endSlice();
+
+ /**
+ * Skips over an object or exception slice.
+ **/
+ void skipSlice();
+
+ /**
+ * Reads the start of an encapsulation.
+ **/
+ void startEncapsulation();
+
+ /**
+ * Skips over an encapsulation.
+ **/
+ void skipEncapsulation();
+
+ /**
+ * Indicates that the end of an encapsulation has been reached.
+ **/
+ void endEncapsulation();
+
+ /**
+ * Indicates that unmarshaling is complete, except for any Slice objects. The application must call this method
+ * only if the stream actually contains Slice objects. Calling <code>readPendingObjects</code> triggers the
+ * calls to {@link ReadObjectCallback#invoke} that inform the application that unmarshaling of a Slice
+ * object is complete.
+ **/
+ void readPendingObjects();
+
+ /**
+ * Resets the read position of the stream to the beginning.
+ **/
+ void rewind();
+
+ /**
+ * Destroys the stream and its associated resources. The application must call <code>destroy</code> prior
+ * to releasing the last reference to a stream; failure to do so may result in resource leaks.
+ **/
+ void destroy();
+}