summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/StreamI.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2012-11-12 13:15:24 -0800
committerMark Spruiell <mes@zeroc.com>2012-11-12 13:15:24 -0800
commit93718cc38ba615c7e4993ad00643134fbe6902ea (patch)
tree925d1a6705e0ee1954ed6b49a5ce1c8ea54a85e8 /cpp/src/Ice/StreamI.cpp
parentAndroid chat demo minor fix (diff)
downloadice-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.cpp47
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);
}