diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/InputStream.java | 2 | ||||
-rw-r--r-- | java/src/Ice/InputStreamI.java | 7 | ||||
-rw-r--r-- | java/src/Ice/OutputStream.java | 3 | ||||
-rw-r--r-- | java/src/Ice/OutputStreamI.java | 17 | ||||
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 15 |
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() { |