diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-11-12 13:15:24 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-11-12 13:15:24 -0800 |
commit | 93718cc38ba615c7e4993ad00643134fbe6902ea (patch) | |
tree | 925d1a6705e0ee1954ed6b49a5ce1c8ea54a85e8 /cpp/src/Ice/StreamI.cpp | |
parent | Android chat demo minor fix (diff) | |
download | ice-93718cc38ba615c7e4993ad00643134fbe6902ea.tar.bz2 ice-93718cc38ba615c7e4993ad00643134fbe6902ea.tar.xz ice-93718cc38ba615c7e4993ad00643134fbe6902ea.zip |
ICE-4932 - accept encoding when creating streams
Diffstat (limited to 'cpp/src/Ice/StreamI.cpp')
-rw-r--r-- | cpp/src/Ice/StreamI.cpp | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/cpp/src/Ice/StreamI.cpp b/cpp/src/Ice/StreamI.cpp index 34f6bc808f5..538b981c1f7 100644 --- a/cpp/src/Ice/StreamI.cpp +++ b/cpp/src/Ice/StreamI.cpp @@ -94,6 +94,17 @@ InputStreamI::InputStreamI(const CommunicatorPtr& communicator, const vector<Byt _is->i = _is->b.begin(); } +InputStreamI::InputStreamI(const CommunicatorPtr& communicator, const vector<Byte>& data, const EncodingVersion& v) : + _communicator(communicator), + _closure(0) +{ + Instance* instance = getInstance(communicator).get(); + _is = new BasicStream(instance, v, true); + _is->closure(this); + _is->writeBlob(data); + _is->i = _is->b.begin(); +} + InputStreamI::InputStreamI(const CommunicatorPtr& communicator, const pair<const Byte*, const Byte*>& data) : _communicator(communicator), _closure(0) @@ -105,6 +116,18 @@ InputStreamI::InputStreamI(const CommunicatorPtr& communicator, const pair<const _is->i = _is->b.begin(); } +InputStreamI::InputStreamI(const CommunicatorPtr& communicator, const pair<const Byte*, const Byte*>& data, + const EncodingVersion& v) : + _communicator(communicator), + _closure(0) +{ + Instance* instance = getInstance(communicator).get(); + _is = new BasicStream(instance, v, true); + _is->closure(this); + _is->writeBlob(data.first, data.second - data.first); + _is->i = _is->b.begin(); +} + InputStreamI::~InputStreamI() { delete _is; @@ -395,14 +418,26 @@ InputStreamI::closure() const // // OutputStreamI // +OutputStreamI::OutputStreamI(const CommunicatorPtr& communicator) : + _communicator(communicator), _own(true) +{ + Instance* instance = getInstance(communicator).get(); + _os = new BasicStream(instance, instance->defaultsAndOverrides()->defaultEncoding, true); + _os->closure(this); +} + +OutputStreamI::OutputStreamI(const CommunicatorPtr& communicator, const EncodingVersion& v) : + _communicator(communicator), _own(true) +{ + Instance* instance = getInstance(communicator).get(); + _os = new BasicStream(instance, v, true); + _os->closure(this); +} + OutputStreamI::OutputStreamI(const CommunicatorPtr& communicator, BasicStream* os) : - _communicator(communicator), _os(os), _own(!os) + _communicator(communicator), _os(os), _own(false) { - if(!_os) - { - Instance* instance = getInstance(communicator).get(); - _os = new BasicStream(instance, instance->defaultsAndOverrides()->defaultEncoding, true); - } + assert(os); _os->closure(this); } |