summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionI.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-03-15 15:22:00 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-03-15 15:22:00 +0000
commitc95ae50506d66315810e6b1501aa7f4eaee3018e (patch)
tree82c050368f94054f9b6b3a03982a9567f6aad337 /cpp/src/Ice/ConnectionI.cpp
parentFixed removeAdapter to not throw, bug 865 (diff)
downloadice-c95ae50506d66315810e6b1501aa7f4eaee3018e.tar.bz2
ice-c95ae50506d66315810e6b1501aa7f4eaee3018e.tar.xz
ice-c95ae50506d66315810e6b1501aa7f4eaee3018e.zip
Performance improvements, mainly inlining
Diffstat (limited to 'cpp/src/Ice/ConnectionI.cpp')
-rw-r--r--cpp/src/Ice/ConnectionI.cpp52
1 files changed, 25 insertions, 27 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index 4d8171c6783..54ac3c0c1cb 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -23,7 +23,6 @@
#include <Ice/OutgoingAsync.h>
#include <Ice/Incoming.h>
#include <Ice/LocalException.h>
-#include <Ice/Protocol.h>
#include <Ice/ReferenceFactory.h> // For createProxy().
#include <Ice/ProxyFactory.h> // For createProxy().
#include <bzlib.h>
@@ -112,7 +111,10 @@ Ice::ConnectionI::validate()
}
BasicStream os(_instance.get());
- os.writeBlob(magic, sizeof(magic));
+ os.write(magic[0]);
+ os.write(magic[1]);
+ os.write(magic[2]);
+ os.write(magic[3]);
os.write(protocolMajor);
os.write(protocolMinor);
os.write(encodingMajor);
@@ -148,8 +150,11 @@ Ice::ConnectionI::validate()
}
assert(is.i == is.b.end());
is.i = is.b.begin();
- const Byte* m;
- is.readBlob(m, static_cast<Int>(sizeof(magic)));
+ Byte m[4];
+ is.read(m[0]);
+ is.read(m[1]);
+ is.read(m[2]);
+ is.read(m[3]);
if(m[0] != magic[0] || m[1] != magic[1] || m[2] != magic[2] || m[3] != magic[3])
{
BadMagicException ex(__FILE__, __LINE__);
@@ -1767,7 +1772,10 @@ Ice::ConnectionI::initiateShutdown() const
// Before we shut down, we send a close connection message.
//
BasicStream os(_instance.get());
- os.writeBlob(magic, sizeof(magic));
+ os.write(magic[0]);
+ os.write(magic[1]);
+ os.write(magic[2]);
+ os.write(magic[3]);
os.write(protocolMajor);
os.write(protocolMinor);
os.write(encodingMajor);
@@ -2339,45 +2347,35 @@ Ice::ConnectionI::run()
throw IllegalMessageSizeException(__FILE__, __LINE__);
}
stream.i = stream.b.begin();
- const Byte* m;
- stream.readBlob(m, static_cast<Int>(sizeof(magic)));
- if(m[0] != magic[0] || m[1] != magic[1] || m[2] != magic[2] || m[3] != magic[3])
+ const Byte* header;
+ stream.readBlob(header, headerSize);
+ if(header[0] != magic[0] || header[1] != magic[1] || header[2] != magic[2] || header[3] != magic[3])
{
BadMagicException ex(__FILE__, __LINE__);
- ex.badMagic = Ice::ByteSeq(&m[0], &m[0] + sizeof(magic));
+ ex.badMagic = Ice::ByteSeq(&header[0], &header[0] + sizeof(magic));
throw ex;
}
- Byte pMajor;
- Byte pMinor;
- stream.read(pMajor);
- stream.read(pMinor);
- if(pMajor != protocolMajor)
+ if(header[4] != protocolMajor)
{
UnsupportedProtocolException ex(__FILE__, __LINE__);
- ex.badMajor = static_cast<unsigned char>(pMajor);
- ex.badMinor = static_cast<unsigned char>(pMinor);
+ ex.badMajor = static_cast<unsigned char>(header[4]);
+ ex.badMinor = static_cast<unsigned char>(header[5]);
ex.major = static_cast<unsigned char>(protocolMajor);
ex.minor = static_cast<unsigned char>(protocolMinor);
throw ex;
}
- Byte eMajor;
- Byte eMinor;
- stream.read(eMajor);
- stream.read(eMinor);
- if(eMajor != encodingMajor)
+ if(header[6] != encodingMajor)
{
UnsupportedEncodingException ex(__FILE__, __LINE__);
- ex.badMajor = static_cast<unsigned char>(eMajor);
- ex.badMinor = static_cast<unsigned char>(eMinor);
+ ex.badMajor = static_cast<unsigned char>(header[6]);
+ ex.badMinor = static_cast<unsigned char>(header[7]);
ex.major = static_cast<unsigned char>(encodingMajor);
ex.minor = static_cast<unsigned char>(encodingMinor);
throw ex;
}
- Byte messageType;
- stream.read(messageType);
- Byte compress;
- stream.read(compress);
+
Int size;
+ stream.i -= sizeof(Int);
stream.read(size);
if(size < headerSize)
{