summaryrefslogtreecommitdiff
path: root/java/src/Ice/OutputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Ice/OutputStream.java')
-rw-r--r--java/src/Ice/OutputStream.java240
1 files changed, 240 insertions, 0 deletions
diff --git a/java/src/Ice/OutputStream.java b/java/src/Ice/OutputStream.java
new file mode 100644
index 00000000000..a24bf946f30
--- /dev/null
+++ b/java/src/Ice/OutputStream.java
@@ -0,0 +1,240 @@
+// **********************************************************************
+//
+// 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 output streams used to write Slice types to a sequence
+ * of bytes.
+ *
+ * @see InputStream
+ **/
+public interface OutputStream
+{
+ /**
+ * Returns the communicator for this output stream.
+ *
+ * @return The communicator.
+ **/
+ Communicator communicator();
+
+ /**
+ * Writes a boolean to the stream.
+ *
+ * @param v The boolean to write to the stream.
+ **/
+ void writeBool(boolean v);
+
+ /**
+ * Writes a sequence of booleans to the stream.
+ *
+ * @param v The sequence of booleans to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeBoolSeq(boolean[] v);
+
+ /**
+ * Writes a byte to the stream.
+ *
+ * @param v The byte to write to the stream.
+ **/
+ void writeByte(byte v);
+
+ /**
+ * Writes a sequence of bytes to the stream.
+ *
+ * @param v The sequence of bytes to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeByteSeq(byte[] v);
+
+ /**
+ * Writes a serializable Java object to the stream.
+ *
+ * @param o The serializable object to write.
+ **/
+ void writeSerializable(java.io.Serializable o);
+
+ /**
+ * Writes a short to the stream.
+ *
+ * @param v The short to write to the stream.
+ **/
+ void writeShort(short v);
+
+ /**
+ * Writes a sequence of shorts to the stream.
+ *
+ * @param v The sequence of shorts to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeShortSeq(short[] v);
+
+ /**
+ * Writes an integer to the stream.
+ *
+ * @param v The integer to write to the stream.
+ **/
+ void writeInt(int v);
+
+ /**
+ * Writes a sequence of integers to the stream.
+ *
+ * @param v The sequence of integers to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeIntSeq(int[] v);
+
+ /**
+ * Writes a long to the stream.
+ *
+ * @param v The long to write to the stream.
+ **/
+ void writeLong(long v);
+
+ /**
+ * Writes a sequence of longs to the stream.
+ *
+ * @param v The sequence of longs to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeLongSeq(long[] v);
+
+ /**
+ * Writes a float to the stream.
+ *
+ * @param v The float to write to the stream.
+ **/
+ void writeFloat(float v);
+
+ /**
+ * Writes a sequence of floats to the stream.
+ *
+ * @param v The sequence of floats to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeFloatSeq(float[] v);
+
+ /**
+ * Writes a double to the stream.
+ *
+ * @param v The double to write to the stream.
+ **/
+ void writeDouble(double v);
+
+ /**
+ * Writes a sequence of doubles to the stream.
+ *
+ * @param v The sequence of doubles to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeDoubleSeq(double[] v);
+
+ /**
+ * Writes a string to the stream.
+ *
+ * @param v The string to write to the stream. Passing <code>null</code> causes
+ * an empty string to be written to the stream.
+ **/
+ void writeString(String v);
+
+ /**
+ * Writes a sequence of strings to the stream.
+ *
+ * @param v The sequence of strings to write.
+ * Passing <code>null</code> causes an empty sequence to be written to the stream.
+ **/
+ void writeStringSeq(String[] v);
+
+ /**
+ * Writes a size to the stream.
+ *
+ * @param sz The size to write.
+ **/
+ void writeSize(int sz);
+
+ /**
+ * Writes a proxy to the stream.
+ *
+ * @param v The proxy to write.
+ **/
+ void writeProxy(ObjectPrx v);
+
+ /**
+ * Writes a Slice class to the stream.
+ *
+ * @param v The class to write. This method writes the index of a Slice class; the state of the class is
+ * written once {@link #writePendingObjects} is called.
+ **/
+ void writeObject(Ice.Object v);
+
+ /**
+ * Writes a Slice type ID to the stream.
+ *
+ * @param id The Slice type ID to write.
+ **/
+ void writeTypeId(String id);
+
+ /**
+ * Writes a user exception to the stream.
+ *
+ * @param id The user exception to write.
+ **/
+ void writeException(UserException ex);
+
+ /**
+ * Writes the start of a slice to the stream.
+ **/
+ void startSlice();
+
+ /**
+ * Ends the previous slice.
+ **/
+ void endSlice();
+
+ /**
+ * Writes the start of an encapsulation to the stream.
+ **/
+ void startEncapsulation();
+
+ /**
+ * Ends the previous encapsulation.
+ **/
+ void endEncapsulation();
+
+ /**
+ * Writes the state of Slice classes whose index was previously
+ * written with {@link #writeObject} to the stream.
+ **/
+ void writePendingObjects();
+
+ /**
+ * Indicates that marshaling of a request or reply is finished.
+ *
+ * @return The byte sequence containing the encoded request or reply.
+ **/
+ byte[] finished();
+
+ /**
+ * Resets this output stream. This method allows the stream to be reused, to avoid creating
+ * unnecessary garbage.
+ *
+ * @param clearBuffer If <code>true</code>, the stream's internal buffer becomes eligible for
+ * garbage collection; if <code>false</code>, the stream's internal buffer is retained, to avoid
+ * creating unnecessary garbage. If retained, the internal buffer may be resized to a smaller
+ * capacity. Either way, <code>reset</code> resets the stream's writing position to zero.
+ **/
+ void reset(boolean clearBuffer);
+
+ /**
+ * 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();
+}