diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-12-22 15:56:26 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-12-22 15:56:26 +0000 |
commit | cdad6934fd09e809cdb02404e98e1c63ebbfcb63 (patch) | |
tree | d449267709aff3b81ca155b9e11373850859825a /java/src/IceInternal/BasicStream.java | |
parent | adding Ice.CacheMessageBuffers (diff) | |
download | ice-cdad6934fd09e809cdb02404e98e1c63ebbfcb63.tar.bz2 ice-cdad6934fd09e809cdb02404e98e1c63ebbfcb63.tar.xz ice-cdad6934fd09e809cdb02404e98e1c63ebbfcb63.zip |
Added autoflushing of batches
Diffstat (limited to 'java/src/IceInternal/BasicStream.java')
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java index 12c20c90daf..ad8aaabb1fb 100644 --- a/java/src/IceInternal/BasicStream.java +++ b/java/src/IceInternal/BasicStream.java @@ -14,7 +14,20 @@ public class BasicStream public BasicStream(IceInternal.Instance instance) { + initialize(instance, false); + } + + public + BasicStream(IceInternal.Instance instance, boolean unlimited) + { + initialize(instance, unlimited); + } + + private void + initialize(IceInternal.Instance instance, boolean unlimited) + { _instance = instance; + _unlimited = unlimited; allocate(1500); _capacity = _buf.capacity(); _limit = 0; @@ -115,12 +128,16 @@ public class BasicStream java.util.ArrayList tmpObjectList = other._objectList; other._objectList = _objectList; _objectList = tmpObjectList; + + boolean tmpUnlimited = other._unlimited; + other._unlimited = _unlimited; + _unlimited = tmpUnlimited; } public void resize(int total, boolean reading) { - if(total > _messageSizeMax) + if(!_unlimited && total > _messageSizeMax) { throw new Ice.MemoryLimitException(); } @@ -1934,7 +1951,7 @@ public class BasicStream { int oldLimit = _limit; _limit += size; - if(_limit > _messageSizeMax) + if(!_unlimited && _limit > _messageSizeMax) { throw new Ice.MemoryLimitException(); } @@ -2262,7 +2279,10 @@ public class BasicStream // // Limit the buffer size to MessageSizeMax // - size = size > _messageSizeMax ? _messageSizeMax : size; + if(!_unlimited) + { + size = size > _messageSizeMax ? _messageSizeMax : size; + } java.nio.ByteBuffer old = _buf; assert(old != null); @@ -2347,6 +2367,7 @@ public class BasicStream private boolean _sliceObjects; private int _messageSizeMax; + private boolean _unlimited; private static final class SeqData { |