summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/CHANGES19
-rw-r--r--cpp/config/PropertyNames.def1
-rw-r--r--cpp/src/Ice/ConnectionI.cpp13
-rw-r--r--cpp/src/Ice/ConnectionI.h6
-rw-r--r--cpp/src/Ice/PropertyNames.cpp3
-rw-r--r--cpp/src/Ice/PropertyNames.h2
6 files changed, 33 insertions, 11 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES
index e29d7c93f54..ec7a020d60c 100644
--- a/cpp/CHANGES
+++ b/cpp/CHANGES
@@ -1,18 +1,25 @@
Changes since version 2.1.1
---------------------------
-- Fixed a bug in IcePack where stopping a server could hang
- if the server didn't answer the Ice::Process::shutdown() call.
+- Changed the C++ translator so that generated code no longer uses
+ static function data.
-- Changed IceStorm subscriber reaping to release more quickly from
- memory dead subscribers.
+- Fixed a bug in IcePack where stopping a server could hang if the
+ server didn't answer the Ice::Process::shutdown() call.
+
+- Changed IceStorm subscriber reaping to release dead subscribers
+ more quickly from memory.
- Fixed a bug in IceStorm where the mode (idempotent or nonmutating)
- of the update wasn't correctly forwarded to the suscribers.
+ of the request wasn't correctly forwarded to the subscribers.
- Added IcePack.Registry.AdminIdentity, IcePack.Registry.QueryIdentity
and IcePack.Registry.LocatorIdentity properties to allow configuring
- the identities of well known IcePack registry interfaces.
+ the identities of well-known IcePack registry interfaces.
+
+- Added the configuration property Ice.Compression.Level to provide
+ more control over the bzip2 algorithm used to compress Ice protocol
+ messages.
- Fixed a bug in the Glacier2 router where buffered mode serialized
twoway requests when it should not.
diff --git a/cpp/config/PropertyNames.def b/cpp/config/PropertyNames.def
index 41a1cdb485c..ab564f188e3 100644
--- a/cpp/config/PropertyNames.def
+++ b/cpp/config/PropertyNames.def
@@ -106,6 +106,7 @@ Ice:
ACM.Client
ACM.Server
ChangeUser
+ Compression.Level
Config
ConnectionIdleTime
Default.Host
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index be7edbba586..b7aff1a400d 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -1452,6 +1452,17 @@ Ice::ConnectionI::ConnectionI(const InstancePtr& instance,
replyHdr[8] = replyMsg;
replyHdr[9] = 0;
+ int& compressionLevel = const_cast<int&>(_compressionLevel);
+ compressionLevel = _instance->properties()->getPropertyAsIntWithDefault("Ice.Compression.Level", 1);
+ if(compressionLevel < 1)
+ {
+ compressionLevel = 1;
+ }
+ else if(compressionLevel > 9)
+ {
+ compressionLevel = 9;
+ }
+
ObjectAdapterI* adapterImpl = _adapter ? dynamic_cast<ObjectAdapterI*>(_adapter.get()) : 0;
if(adapterImpl)
{
@@ -1904,7 +1915,7 @@ Ice::ConnectionI::doCompress(BasicStream& uncompressed, BasicStream& compressed)
&compressedLen,
reinterpret_cast<char*>(&uncompressed.b[0]) + headerSize,
uncompressedLen,
- 1, 0, 0);
+ _compressionLevel, 0, 0);
if(bzError != BZ_OK)
{
CompressionException ex(__FILE__, __LINE__);
diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h
index d1ccae74f8f..58092d36d5d 100644
--- a/cpp/src/Ice/ConnectionI.h
+++ b/cpp/src/Ice/ConnectionI.h
@@ -118,8 +118,8 @@ private:
void registerWithPool();
void unregisterWithPool();
- static void doCompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
- static void doUncompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
+ void doCompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
+ void doUncompress(IceInternal::BasicStream&, IceInternal::BasicStream&);
void parseMessage(IceInternal::BasicStream&, Int&, Int&, Byte&,
IceInternal::ServantManagerPtr&, ObjectAdapterPtr&, IceInternal::OutgoingAsyncPtr&);
@@ -166,6 +166,8 @@ private:
const std::vector<Byte> _requestBatchHdr;
const std::vector<Byte> _replyHdr;
+ const int _compressionLevel;
+
Int _nextRequestId;
std::map<Int, IceInternal::Outgoing*> _requests;
diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp
index 3067ceab9ed..97ac8cc7b62 100644
--- a/cpp/src/Ice/PropertyNames.cpp
+++ b/cpp/src/Ice/PropertyNames.cpp
@@ -7,7 +7,7 @@
//
// **********************************************************************
-// Generated by makeprops.py from file `../config/PropertyNames.def', Thu Jun 2 17:48:18 2005
+// Generated by makeprops.py from file `../config/PropertyNames.def', Thu Jun 2 15:14:44 2005
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -18,6 +18,7 @@ const char* IceInternal::PropertyNames::IceProps[] =
"Ice.ACM.Client",
"Ice.ACM.Server",
"Ice.ChangeUser",
+ "Ice.Compression.Level",
"Ice.Config",
"Ice.ConnectionIdleTime",
"Ice.Default.Host",
diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h
index a62522681eb..68cae66c143 100644
--- a/cpp/src/Ice/PropertyNames.h
+++ b/cpp/src/Ice/PropertyNames.h
@@ -7,7 +7,7 @@
//
// **********************************************************************
-// Generated by makeprops.py from file `../config/PropertyNames.def', Thu Jun 2 17:48:18 2005
+// Generated by makeprops.py from file `../config/PropertyNames.def', Thu Jun 2 15:14:44 2005
// IMPORTANT: Do not edit this file -- any edits made here will be lost!