summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-06-07 15:23:05 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-06-07 15:23:05 +0000
commit8159773193ab95b7b35aec8cba4cc03f473c0dda (patch)
treedd0ec9401db8dd8b588465a62fa6662c4f523cc3
parentIceGrid Win32 fixes (diff)
downloadice-8159773193ab95b7b35aec8cba4cc03f473c0dda.tar.bz2
ice-8159773193ab95b7b35aec8cba4cc03f473c0dda.tar.xz
ice-8159773193ab95b7b35aec8cba4cc03f473c0dda.zip
Fixed bug 1042
-rw-r--r--cpp/include/Ice/Initialize.h2
-rw-r--r--cpp/src/Ice/CommunicatorI.h2
-rw-r--r--cpp/src/Ice/Initialize.cpp11
-rw-r--r--cppe/CHANGES6
-rwxr-xr-xcppe/include/IceE/Communicator.h2
-rw-r--r--cppe/include/IceE/Initialize.h6
-rwxr-xr-xcppe/include/IceE/ObjectAdapter.h1
-rw-r--r--cppe/src/IceE/Initialize.cpp11
-rw-r--r--cppe/src/IceE/ObjectAdapter.cpp7
-rw-r--r--cppe/test/IceE/adapterDeactivation/AllTests.cpp6
10 files changed, 26 insertions, 28 deletions
diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h
index d4146300f9e..03a34e854c3 100644
--- a/cpp/include/Ice/Initialize.h
+++ b/cpp/include/Ice/Initialize.h
@@ -65,7 +65,7 @@ struct InitializationData
ThreadNotificationPtr threadHook;
};
-ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData = InitializationData(),
+ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData& = InitializationData(),
Int = ICE_INT_VERSION);
ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&,
Int = ICE_INT_VERSION);
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index d7087d703f4..fe29d051696 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -68,7 +68,7 @@ private:
//
void finishSetup(int&, char*[]);
- friend ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData, Int);
+ friend ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData&, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
const ::IceInternal::InstancePtr _instance;
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index b8bd4946e72..ca108e8db85 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -148,7 +148,7 @@ Ice::getDefaultProperties(int& argc, char* argv[])
}
CommunicatorPtr
-Ice::initialize(int& argc, char* argv[], InitializationData initData, Int version)
+Ice::initialize(int& argc, char* argv[], const InitializationData& initData, Int version)
{
#ifndef ICE_IGNORE_VERSION
//
@@ -168,15 +168,16 @@ Ice::initialize(int& argc, char* argv[], InitializationData initData, Int versio
}
#endif
- if(initData.properties == 0)
+ InitializationData tmpData = initData;
+ if(tmpData.properties == 0)
{
- initData.properties = getDefaultProperties(argc, argv);
+ tmpData.properties = getDefaultProperties(argc, argv);
}
StringSeq args = argsToStringSeq(argc, argv);
- args = initData.properties->parseIceCommandLineOptions(args);
+ args = tmpData.properties->parseIceCommandLineOptions(args);
stringSeqToArgs(args, argc, argv);
- CommunicatorI* communicatorI = new CommunicatorI(initData);
+ CommunicatorI* communicatorI = new CommunicatorI(tmpData);
CommunicatorPtr result = communicatorI; // For exception safety.
communicatorI->finishSetup(argc, argv);
return result;
diff --git a/cppe/CHANGES b/cppe/CHANGES
index 054471ae06f..aefc63a411f 100644
--- a/cppe/CHANGES
+++ b/cppe/CHANGES
@@ -16,9 +16,9 @@ Changes since version 1.1.0
- Fixed an assert which could occur with proxies received over
the wire and containing unknown endpoints.
-- Added new method Ice::ObjectAdapter::destroy(). After this method
- has been called it is now permissible to recreate a new object
- adapter with the same name as the destroyed adapter.
+- It is now permissible to recreate a new object adapter with the same
+ name as an old adapter once waitForDeactivate() has returned on the
+ old adapter.
- Added new method Ice::Communicator::createObjectAdapterWithRouter()
which creates a routed object adapter. A object adapter can now only
diff --git a/cppe/include/IceE/Communicator.h b/cppe/include/IceE/Communicator.h
index 9cb437b219f..9c18238676b 100755
--- a/cppe/include/IceE/Communicator.h
+++ b/cppe/include/IceE/Communicator.h
@@ -70,7 +70,7 @@ private:
//
void finishSetup(int&, char*[]);
- friend ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData, Int);
+ friend ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData&, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
const ::IceInternal::InstancePtr _instance;
diff --git a/cppe/include/IceE/Initialize.h b/cppe/include/IceE/Initialize.h
index 0d186ecebb2..f46bdbf3b22 100644
--- a/cppe/include/IceE/Initialize.h
+++ b/cppe/include/IceE/Initialize.h
@@ -42,8 +42,10 @@ struct InitializationData
WstringConverterPtr wstringConverter;
};
-ICE_API CommunicatorPtr initialize(int&, char*[], InitializationData = InitializationData(), Int = ICEE_INT_VERSION);
-ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&, Int = ICEE_INT_VERSION);
+ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData& = InitializationData(),
+ Int = ICEE_INT_VERSION);
+ICE_API ICE_DEPRECATED_API CommunicatorPtr initializeWithProperties(int&, char*[], const PropertiesPtr&,
+ Int = ICEE_INT_VERSION);
ICE_API PropertiesPtr getDefaultProperties();
ICE_API PropertiesPtr getDefaultProperties(StringSeq&);
diff --git a/cppe/include/IceE/ObjectAdapter.h b/cppe/include/IceE/ObjectAdapter.h
index 3444c8c5192..c3c480b0252 100755
--- a/cppe/include/IceE/ObjectAdapter.h
+++ b/cppe/include/IceE/ObjectAdapter.h
@@ -54,7 +54,6 @@ public:
void waitForHold();
void deactivate();
void waitForDeactivate();
- void destroy();
ObjectPrx add(const ObjectPtr&, const Identity&);
ObjectPrx addFacet(const ObjectPtr&, const Identity&, const std::string&);
diff --git a/cppe/src/IceE/Initialize.cpp b/cppe/src/IceE/Initialize.cpp
index dd2536e93d3..771d184dc93 100644
--- a/cppe/src/IceE/Initialize.cpp
+++ b/cppe/src/IceE/Initialize.cpp
@@ -123,7 +123,7 @@ Ice::getDefaultProperties(int& argc, char* argv[])
}
CommunicatorPtr
-Ice::initialize(int& argc, char* argv[], InitializationData initData, Int version)
+Ice::initialize(int& argc, char* argv[], const InitializationData& initData, Int version)
{
#ifndef ICE_IGNORE_VERSION
//
@@ -143,16 +143,17 @@ Ice::initialize(int& argc, char* argv[], InitializationData initData, Int versio
}
#endif
- if(!initData.properties)
+ InitializationData tmpData = initData;
+ if(!tmpData.properties)
{
- initData.properties = getDefaultProperties(argc, argv);
+ tmpData.properties = getDefaultProperties(argc, argv);
}
StringSeq args = argsToStringSeq(argc, argv);
- args = initData.properties->parseIceCommandLineOptions(args);
+ args = tmpData.properties->parseIceCommandLineOptions(args);
stringSeqToArgs(args, argc, argv);
- CommunicatorPtr communicator = new Communicator(initData);
+ CommunicatorPtr communicator = new Communicator(tmpData);
communicator->finishSetup(argc, argv);
return communicator;
}
diff --git a/cppe/src/IceE/ObjectAdapter.cpp b/cppe/src/IceE/ObjectAdapter.cpp
index ea2253b0c44..e6c5810ae1f 100644
--- a/cppe/src/IceE/ObjectAdapter.cpp
+++ b/cppe/src/IceE/ObjectAdapter.cpp
@@ -341,13 +341,6 @@ Ice::ObjectAdapter::waitForDeactivate()
}
}
-void
-Ice::ObjectAdapter::destroy()
-{
- deactivate();
- waitForDeactivate();
-}
-
ObjectPrx
Ice::ObjectAdapter::add(const ObjectPtr& object, const Identity& ident)
{
diff --git a/cppe/test/IceE/adapterDeactivation/AllTests.cpp b/cppe/test/IceE/adapterDeactivation/AllTests.cpp
index 45f3e2cea53..5632ce16850 100644
--- a/cppe/test/IceE/adapterDeactivation/AllTests.cpp
+++ b/cppe/test/IceE/adapterDeactivation/AllTests.cpp
@@ -42,9 +42,11 @@ allTests(const CommunicatorPtr& communicator)
catch(const AlreadyRegisteredException&)
{
}
- adapter->destroy();
+ adapter->deactivate();
+ adapter->waitForDeactivate();
adapter = communicator->createObjectAdapterWithEndpoints("TransientTestAdapter", "default -p 9999");
- adapter->destroy();
+ adapter->deactivate();
+ adapter->waitForDeactivate();
printf("ok\n");
}