summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/Outgoing.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/Outgoing.h')
-rw-r--r--cpp/include/Ice/Outgoing.h49
1 files changed, 48 insertions, 1 deletions
diff --git a/cpp/include/Ice/Outgoing.h b/cpp/include/Ice/Outgoing.h
index 02dc1cb7df0..9ed0549be38 100644
--- a/cpp/include/Ice/Outgoing.h
+++ b/cpp/include/Ice/Outgoing.h
@@ -85,8 +85,54 @@ public:
void finished(const Ice::LocalException&, bool);
// Inlined for speed optimization.
- BasicStream* is() { return &_is; }
BasicStream* os() { return &_os; }
+ BasicStream* startReadParams()
+ {
+ _is.startReadEncaps();
+ return &_is;
+ }
+ void endReadParams()
+ {
+ _is.endReadEncaps();
+ }
+ void readEmptyParams()
+ {
+ _is.skipEmptyEncaps();
+ }
+ void readParamEncaps(const Ice::Byte*& encaps, Ice::Int& sz)
+ {
+ _is.readEncaps(encaps, sz);
+ }
+
+ BasicStream* startWriteParams()
+ {
+ _os.startWriteEncaps(_encoding);
+ return &_os;
+ }
+ void endWriteParams()
+ {
+ _os.endWriteEncaps();
+ }
+ void writeEmptyParams()
+ {
+ _os.writeEmptyEncaps(_encoding);
+ }
+ void writeParamEncaps(const Ice::Byte* encaps, Ice::Int size)
+ {
+ if(size == 0)
+ {
+ _os.writeEmptyEncaps(_encoding);
+ }
+ else
+ {
+ _os.writeEncaps(encaps, size);
+ }
+ }
+
+ bool hasResponse()
+ {
+ return !_is.b.empty();
+ }
void throwUserException();
@@ -110,6 +156,7 @@ private:
StateFailed
} _state;
+ Ice::EncodingVersion _encoding;
BasicStream _is;
BasicStream _os;
bool _sent;