summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/InputStream.java2
-rw-r--r--java/src/Ice/InputStreamI.java7
-rw-r--r--java/src/Ice/OutputStream.java3
-rw-r--r--java/src/Ice/OutputStreamI.java17
-rw-r--r--java/src/IceInternal/BasicStream.java15
5 files changed, 44 insertions, 0 deletions
diff --git a/java/src/Ice/InputStream.java b/java/src/Ice/InputStream.java
index 9028cad551d..5953c21bd78 100644
--- a/java/src/Ice/InputStream.java
+++ b/java/src/Ice/InputStream.java
@@ -61,5 +61,7 @@ public interface InputStream
void readPendingObjects();
+ void rewind();
+
void destroy();
}
diff --git a/java/src/Ice/InputStreamI.java b/java/src/Ice/InputStreamI.java
index e2136ef9cd7..66ecac78ddd 100644
--- a/java/src/Ice/InputStreamI.java
+++ b/java/src/Ice/InputStreamI.java
@@ -235,6 +235,13 @@ public class InputStreamI implements InputStream
}
public void
+ rewind()
+ {
+ _is.clear();
+ _is.getBuffer().b.position(0);
+ }
+
+ public void
destroy()
{
if(_is != null)
diff --git a/java/src/Ice/OutputStream.java b/java/src/Ice/OutputStream.java
index 4105fbc94b6..c8d71867936 100644
--- a/java/src/Ice/OutputStream.java
+++ b/java/src/Ice/OutputStream.java
@@ -58,5 +58,8 @@ public interface OutputStream
void writePendingObjects();
byte[] finished();
+
+ void reset(boolean clearBuffer);
+
void destroy();
}
diff --git a/java/src/Ice/OutputStreamI.java b/java/src/Ice/OutputStreamI.java
index c8bb53ffd4d..0713d10b492 100644
--- a/java/src/Ice/OutputStreamI.java
+++ b/java/src/Ice/OutputStreamI.java
@@ -209,6 +209,23 @@ public class OutputStreamI implements OutputStream
}
public void
+ reset(boolean clearBuffer)
+ {
+ _os.clear();
+
+ IceInternal.Buffer buf = _os.getBuffer();
+ if(clearBuffer)
+ {
+ buf.clear();
+ }
+ else
+ {
+ buf.reset();
+ }
+ buf.b.position(0);
+ }
+
+ public void
destroy()
{
if(_os != null)
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java
index 39b2c547e37..91cd29b2974 100644
--- a/java/src/IceInternal/BasicStream.java
+++ b/java/src/IceInternal/BasicStream.java
@@ -72,6 +72,21 @@ public class BasicStream
_sliceObjects = true;
}
+ public void
+ clear()
+ {
+ _readEncapsStack = null;
+ _writeEncapsStack = null;
+ _seqDataStack = null;
+
+ if(_objectList != null)
+ {
+ _objectList.clear();
+ }
+ _objectList = null;
+ _sliceObjects = true;
+ }
+
public Instance
instance()
{