diff options
Diffstat (limited to 'cpp/src')
50 files changed, 559 insertions, 314 deletions
diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp index 49ac2a48b05..b4b318b2ce6 100644 --- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp +++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp @@ -13,6 +13,10 @@ #include <IceUtil/StringUtil.h> #include <Freeze/Util.h> +#include <Freeze/ObjectStore.h> + + + #include <typeinfo> using namespace std; @@ -1399,12 +1403,12 @@ Freeze::BackgroundSaveEvictorElement::~BackgroundSaveEvictorElement() { } +// COMPILERFIX: Required to build with C++ Builder 2007 +typedef ObjectStore<BackgroundSaveEvictorElement>::Position BackgroundSaveEvictorElementPosition; + void -Freeze::BackgroundSaveEvictorElement::init(ObjectStore<BackgroundSaveEvictorElement>::Position p) +Freeze::BackgroundSaveEvictorElement::init(BackgroundSaveEvictorElementPosition p) { stale = false; cachePosition = p; } - - - diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h index c25f88feed3..9eff024a02f 100644 --- a/cpp/src/Freeze/EvictorI.h +++ b/cpp/src/Freeze/EvictorI.h @@ -220,7 +220,7 @@ protected: } ObjectStore<T>* store = new ObjectStore<T>(facet, facetType,_createDb, this, storeIndices, populateEmptyIndices); -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) _storeMap.insert(StoreMap::value_type(facet, store)); #else _storeMap.insert(typename StoreMap::value_type(facet, store)); @@ -235,7 +235,7 @@ protected: { facet = ""; } -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) std::pair<StoreMap::iterator, bool> ir = _storeMap.insert(StoreMap::value_type(facet, 0)); #else @@ -278,7 +278,7 @@ protected: } os = new ObjectStore<T>(facet, facetType, true, this); -#if defined(_MSC_VER) && (_MSC_VER < 1300) +#if defined(__BCPLUSPLUS__) || (defined(_MSC_VER) && (_MSC_VER < 1300)) _storeMap.insert(StoreMap::value_type(facet, os)); #else _storeMap.insert(typename StoreMap::value_type(facet, os)); diff --git a/cpp/src/Freeze/Makefile.mak b/cpp/src/Freeze/Makefile.mak index 014163eccf6..fb1c80d2b1b 100644 --- a/cpp/src/Freeze/Makefile.mak +++ b/cpp/src/Freeze/Makefile.mak @@ -59,10 +59,16 @@ LINKWITH = $(LIBS) $(DB_LIBS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Freeze.res
+!else
+RES_FILE = Freeze.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) Freeze.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Freeze.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -111,7 +117,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/Freeze/ObjectStore.h b/cpp/src/Freeze/ObjectStore.h index d24a7c487cd..1f9f389035a 100644 --- a/cpp/src/Freeze/ObjectStore.h +++ b/cpp/src/Freeze/ObjectStore.h @@ -94,7 +94,14 @@ class ObjectStore : public ObjectStoreBase, public IceUtil::Cache<Ice::Identity, { } +#ifdef __BCPLUSPLUS__ + bool load(const Ice::Identity& ident, const TransactionIPtr& trans, ObjectRecord& rec) + { + return ObjectStoreBase::load(ident, trans, rec); + } +#else using ObjectStoreBase::load; +#endif typedef IceUtil::Cache<Ice::Identity, T> Cache; diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp index db6ee0f8421..e2798be89da 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorI.cpp @@ -827,8 +827,11 @@ Freeze::TransactionalEvictorElement::~TransactionalEvictorElement() { } +// COMPILERFIX: Required to build with C++ Builder 2007 +typedef ObjectStore<TransactionalEvictorElement>::Position TransactionalEvictorElementPosition; + void -Freeze::TransactionalEvictorElement::init(ObjectStore<TransactionalEvictorElement>::Position p) +Freeze::TransactionalEvictorElement::init(TransactionalEvictorElementPosition p) { _stale = false; _cachePosition = p; diff --git a/cpp/src/FreezeScript/Makefile.mak b/cpp/src/FreezeScript/Makefile.mak index a3ead3e7fa4..127f1b822f8 100644 --- a/cpp/src/FreezeScript/Makefile.mak +++ b/cpp/src/FreezeScript/Makefile.mak @@ -47,15 +47,23 @@ TPDBFLAGS = /pdb:$(TRANSFORMDB:.exe=.pdb) DPDBFLAGS = /pdb:$(DUMPDB:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+TRES_FILE = ,, TransformDB.res
+DRES_FILE = ,, DumpDB.res
+!else
+TRES_FILE = TransformDB.res
+DRES_FILE = DumpDB.res
+!endif
+
$(TRANSFORMDB): $(TRANSFORM_OBJS) $(COMMON_OBJS) TransformDB.res
- $(LINK) $(LD_EXEFLAGS) $(TPDBFLAGS) $(TRANSFORM_OBJS) $(COMMON_OBJS) TransformDB.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(TPDBFLAGS) $(TRANSFORM_OBJS) $(COMMON_OBJS) $(SETARGV) $(PREOUT)$@ \
+ $(PRELIBS)$(LINKWITH) $(TRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
$(DUMPDB): $(DUMP_OBJS) $(COMMON_OBJS) DumpDB.res
- $(LINK) $(LD_EXEFLAGS) $(DPDBFLAGS) $(DUMP_OBJS) $(COMMON_OBJS) DumpDB.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(DPDBFLAGS) $(DUMP_OBJS) $(COMMON_OBJS) $(SETARGV) $(PREOUT)$@ \
+ $(PRELIBS)$(LINKWITH) $(DRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -92,7 +100,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(TRANSFORMDB:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/Glacier2/Makefile.mak b/cpp/src/Glacier2/Makefile.mak index ef41b9387ef..29629cf3d66 100644 --- a/cpp/src/Glacier2/Makefile.mak +++ b/cpp/src/Glacier2/Makefile.mak @@ -55,7 +55,7 @@ SDIR = $(slicedir)\Glacier2 CPPFLAGS = -I.. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
LINKWITH = $(LIBS) $(OPENSSL_LIBS) glacier2$(LIBSUFFIX).lib icessl$(LIBSUFFIX).lib
-!if "$(CPP_COMPILER)" != "BCC2006"
+!if "$(CPP_COMPILER)" != "BCC2007"
LINKWITH = $(LINKWITH) ws2_32.lib
!endif
@@ -70,19 +70,27 @@ PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) RPDBFLAGS = /pdb:$(ROUTER:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Glacier2.res
+RRES_FILE = ,, Glacier2Router.res
+!else
+RES_FILE = Glacier2.res
+RRES_FILE = Glacier2Router.res
+!endif
+
SLICE2CPPFLAGS = --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS)
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) Glacier2.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Glacier2.res $(PREOUT)$@ $(PRELIBS)$(LIBS)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp)
$(ROUTER): $(ROBJS) Glacier2Router.res
- $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(ROBJS) Glacier2Router.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(ROBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -113,7 +121,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index eca720d7e31..229a0a51a05 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -146,52 +146,52 @@ public: { } - virtual void - authorize() + class CheckPermissionsCB : public AMI_PermissionsVerifier_checkPermissions { - assert(_sessionRouter->_verifier); + public: - class CheckPermissionsCB : public AMI_PermissionsVerifier_checkPermissions + CheckPermissionsCB(const UserPasswordCreateSessionPtr& session, bool hasSessionManager) : + _session(session), + _hasSessionManager(hasSessionManager) { - public: + } - CheckPermissionsCB(const UserPasswordCreateSessionPtr& session, bool hasSessionManager) : - _session(session), - _hasSessionManager(hasSessionManager) + virtual void + ice_response(bool ok, const string& reason) + { + if(ok) { + _session->authorized(_hasSessionManager); } - - virtual void - ice_response(bool ok, const string& reason) + else { - if(ok) - { - _session->authorized(_hasSessionManager); - } - else - { - _session->exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); - } + _session->exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } + } - virtual void - ice_exception(const Ice::Exception& ex) + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast<const CollocationOptimizationException*>(&ex)) { - if(dynamic_cast<const CollocationOptimizationException*>(&ex)) - { - _session->authorizeCollocated(); - } - else - { - _session->unexpectedAuthorizeException(ex); - } + _session->authorizeCollocated(); } + else + { + _session->unexpectedAuthorizeException(ex); + } + } - private: + private: - const UserPasswordCreateSessionPtr _session; - const bool _hasSessionManager; - }; + const UserPasswordCreateSessionPtr _session; + const bool _hasSessionManager; + }; + + virtual void + authorize() + { + assert(_sessionRouter->_verifier); AMI_PermissionsVerifier_checkPermissionsPtr cb = new CheckPermissionsCB(this, _sessionRouter->_sessionManager); _sessionRouter->_verifier->checkPermissions_async(cb, _user, _password, _current.ctx); @@ -209,7 +209,7 @@ public: } else { - exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); + exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } } catch(const Ice::Exception& ex) @@ -224,44 +224,45 @@ public: return FilterManager::create(_instance, _user, true); } - virtual void - createSession() + class CreateCB : public AMI_SessionManager_create { - class CreateCB : public AMI_SessionManager_create + public: + + CreateCB(const CreateSessionPtr& session) : _session(session) { - public: - - CreateCB(const CreateSessionPtr& session) : _session(session) + } + + virtual void + ice_response(const SessionPrx& session) + { + _session->sessionCreated(session); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + try { + ex.ice_throw(); } - - virtual void - ice_response(const SessionPrx& session) + catch(const CannotCreateSessionException& ex) { - _session->sessionCreated(session); + _session->exception(ex); } - - virtual void - ice_exception(const Ice::Exception& ex) + catch(const Ice::Exception& ex) { - try - { - ex.ice_throw(); - } - catch(const CannotCreateSessionException& ex) - { - _session->exception(ex); - } - catch(const Ice::Exception& ex) - { - _session->unexpectedCreateSessionException(ex); - } + _session->unexpectedCreateSessionException(ex); } + } - private: - - const CreateSessionPtr _session; - }; + private: + + const CreateSessionPtr _session; + }; + + virtual void + createSession() + { _sessionRouter->_sessionManager->create_async(new CreateCB(this), _user, _control, _current.ctx); } @@ -296,52 +297,53 @@ public: { } - virtual void - authorize() + class AuthorizeCB : public AMI_SSLPermissionsVerifier_authorize { - assert(_sessionRouter->_verifier); + public: - class AuthorizeCB : public AMI_SSLPermissionsVerifier_authorize + AuthorizeCB(const SSLCreateSessionPtr& session, bool hasSessionManager) : + _session(session), + _hasSessionManager(hasSessionManager) { - public: + } - AuthorizeCB(const SSLCreateSessionPtr& session, bool hasSessionManager) : - _session(session), - _hasSessionManager(hasSessionManager) + virtual void + ice_response(bool ok, const string& reason) + { + if(ok) { + _session->authorized(_hasSessionManager); } - - virtual void - ice_response(bool ok, const string& reason) + else { - if(ok) - { - _session->authorized(_hasSessionManager); - } - else - { - _session->exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); - } + _session->exception(PermissionDeniedException(reason.empty() ? string("permission denied") + : reason)); } + } - virtual void - ice_exception(const Ice::Exception& ex) + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast<const CollocationOptimizationException*>(&ex)) { - if(dynamic_cast<const CollocationOptimizationException*>(&ex)) - { - _session->authorizeCollocated(); - } - else - { - _session->unexpectedAuthorizeException(ex); - } + _session->authorizeCollocated(); + } + else + { + _session->unexpectedAuthorizeException(ex); } + } - private: + private: - const SSLCreateSessionPtr _session; - const bool _hasSessionManager; - }; + const SSLCreateSessionPtr _session; + const bool _hasSessionManager; + }; + + virtual void + authorize() + { + assert(_sessionRouter->_verifier); AMI_SSLPermissionsVerifier_authorizePtr cb = new AuthorizeCB(this, _sessionRouter->_sessionManager); _sessionRouter->_sslVerifier->authorize_async(cb, _sslInfo, _current.ctx); @@ -359,7 +361,7 @@ public: } else { - exception(PermissionDeniedException(reason.empty() ? "permission denied" : reason)); + exception(PermissionDeniedException(reason.empty() ? string("permission denied") : reason)); } } catch(const Ice::Exception& ex) @@ -374,44 +376,45 @@ public: return FilterManager::create(_instance, _user, false); } - virtual void - createSession() + class CreateCB : public AMI_SSLSessionManager_create { - class CreateCB : public AMI_SSLSessionManager_create + public: + + CreateCB(const CreateSessionPtr& session) : _session(session) { - public: - - CreateCB(const CreateSessionPtr& session) : _session(session) + } + + virtual void + ice_response(const SessionPrx& session) + { + _session->sessionCreated(session); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + try { + ex.ice_throw(); } - - virtual void - ice_response(const SessionPrx& session) + catch(const CannotCreateSessionException& ex) { - _session->sessionCreated(session); + _session->exception(ex); } - - virtual void - ice_exception(const Ice::Exception& ex) + catch(const Ice::Exception& ex) { - try - { - ex.ice_throw(); - } - catch(const CannotCreateSessionException& ex) - { - _session->exception(ex); - } - catch(const Ice::Exception& ex) - { - _session->unexpectedCreateSessionException(ex); - } + _session->unexpectedCreateSessionException(ex); } + } - private: - - const CreateSessionPtr _session; - }; + private: + + const CreateSessionPtr _session; + }; + + virtual void + createSession() + { _sessionRouter->_sslSessionManager->create_async(new CreateCB(this), _sslInfo, _control, _current.ctx); } @@ -437,9 +440,12 @@ class DestroyCB : public AMI_Session_destroy { public: - DestroyCB(int traceLevel, const LoggerPtr& logger) : - _logger(traceLevel > 0 ? logger : LoggerPtr()) + DestroyCB(int traceLevel, const LoggerPtr& logger) { + if(traceLevel > 0) + { + _logger = logger; + } } virtual void @@ -545,8 +551,12 @@ Glacier2::CreateSession::sessionCreated(const SessionPrx& session) RouterIPtr router; try { - router = new RouterI(_instance, _current.con, _user, session, - _control ? _control->ice_getIdentity() : Ice::Identity(), _filterManager, _sslContext); + Ice::Identity ident; + if(_control) + { + ident = _control->ice_getIdentity(); + } + router = new RouterI(_instance, _current.con, _user, session, ident, _filterManager, _sslContext); } catch(const Ice::Exception& ex) { diff --git a/cpp/src/Ice/ConnectionRequestHandler.cpp b/cpp/src/Ice/ConnectionRequestHandler.cpp index d65e9fd449c..44d004fd2da 100644 --- a/cpp/src/Ice/ConnectionRequestHandler.cpp +++ b/cpp/src/Ice/ConnectionRequestHandler.cpp @@ -21,7 +21,19 @@ using namespace IceInternal; ConnectionRequestHandler::ConnectionRequestHandler(const ReferencePtr& reference, const Ice::ObjectPrx& proxy) : RequestHandler(reference) { - _connection = _reference->getConnection(_compress); +// COMPILERFIX: Without the catch/rethrow C++Builder 2007 can get access violations. +#ifdef __BCPLUSPLUS__ + try + { +#endif + _connection = _reference->getConnection(_compress); +#ifdef __BCPLUSPLUS__ + } + catch(const Ice::LocalException&) + { + throw; + } +#endif RouterInfoPtr ri = reference->getRouterInfo(); if(ri) { diff --git a/cpp/src/Ice/EventHandler.cpp b/cpp/src/Ice/EventHandler.cpp index 43b39ee7844..3f91732ac6e 100644 --- a/cpp/src/Ice/EventHandler.cpp +++ b/cpp/src/Ice/EventHandler.cpp @@ -15,7 +15,7 @@ using namespace Ice; using namespace IceInternal; IceUtil::Shared* IceInternal::upCast(EventHandler* p) { return p; } -IceUtil::Shared* IceInternal::upCast(ThreadPoolWorkItem* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ThreadPoolWorkItem* p) { return p; } InstancePtr IceInternal::EventHandler::instance() const diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp index 3e8b70df196..027261900aa 100644 --- a/cpp/src/Ice/LocatorInfo.cpp +++ b/cpp/src/Ice/LocatorInfo.cpp @@ -384,6 +384,73 @@ IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, bool& c return endpoints; } +namespace IceInternal +{ + +class findAdapterByIdCallback : public AMI_Locator_findAdapterById +{ +public: + + virtual void + ice_response(const Ice::ObjectPrx& object) + { + vector<EndpointIPtr> endpoints; + if(object) + { + endpoints = object->__reference()->getEndpoints(); + if(!endpoints.empty()) + { + _table->addAdapterEndpoints(_reference->getAdapterId(), endpoints); + } + } + + if(_reference->getInstance()->traceLevels()->location >= 1) + { + _locatorInfo->getEndpointsTrace(_reference, endpoints, false); + } + + _callback->setEndpoints(endpoints, false); + } + + virtual void + ice_exception(const Ice::Exception& ex) + { + if(dynamic_cast<const Ice::CollocationOptimizationException*>(&ex)) + { + try + { + bool cached; + vector<EndpointIPtr> endpoints = _locatorInfo->getEndpoints(_reference, _ttl, cached); + _callback->setEndpoints(endpoints, cached); + } + catch(const Ice::LocalException& e) + { + _callback->setException(e); + } + } + else + { + _locatorInfo->getEndpointsException(_reference, ex, _callback); + } + } + + findAdapterByIdCallback(const LocatorInfoPtr& locatorInfo, const LocatorTablePtr& table, + const ReferencePtr& reference, int ttl, const LocatorInfo::GetEndpointsCallbackPtr& callback) : + _locatorInfo(locatorInfo), _table(table), _reference(reference), _ttl(ttl), _callback(callback) + { + } + +private: + + const LocatorInfoPtr _locatorInfo; + const LocatorTablePtr _table; + const ReferencePtr _reference; + const int _ttl; + const LocatorInfo::GetEndpointsCallbackPtr _callback; +}; + +}; + void IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& callback) { @@ -403,73 +470,12 @@ IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, int ttl, const G out << "searching for adapter by id" << "\nadapter = " << adapterId; } - class Callback : public AMI_Locator_findAdapterById - { - public: - - virtual void - ice_response(const Ice::ObjectPrx& object) - { - vector<EndpointIPtr> endpoints; - if(object) - { - endpoints = object->__reference()->getEndpoints(); - if(!endpoints.empty()) - { - _table->addAdapterEndpoints(_reference->getAdapterId(), endpoints); - } - } - - if(_reference->getInstance()->traceLevels()->location >= 1) - { - _locatorInfo->getEndpointsTrace(_reference, endpoints, false); - } - - _callback->setEndpoints(endpoints, false); - } - - virtual void - ice_exception(const Ice::Exception& ex) - { - if(dynamic_cast<const Ice::CollocationOptimizationException*>(&ex)) - { - try - { - bool cached; - vector<EndpointIPtr> endpoints = _locatorInfo->getEndpoints(_reference, _ttl, cached); - _callback->setEndpoints(endpoints, cached); - } - catch(const Ice::LocalException& e) - { - _callback->setException(e); - } - } - else - { - _locatorInfo->getEndpointsException(_reference, ex, _callback); - } - } - - Callback(const LocatorInfoPtr& locatorInfo, const LocatorTablePtr& table, - const ReferencePtr& reference, int ttl, const GetEndpointsCallbackPtr& callback) : - _locatorInfo(locatorInfo), _table(table), _reference(reference), _ttl(ttl), _callback(callback) - { - } - - private: - - const LocatorInfoPtr _locatorInfo; - const LocatorTablePtr _table; - const ReferencePtr _reference; - const int _ttl; - const GetEndpointsCallbackPtr _callback; - }; - // // Search the adapter in the location service if we didn't // find it in the cache. // - _locator->findAdapterById_async(new Callback(this, _table, ref, ttl, callback), adapterId); + _locator->findAdapterById_async( + new IceInternal::findAdapterByIdCallback(this, _table, ref, ttl, callback), adapterId); return; } else diff --git a/cpp/src/Ice/Makefile.mak b/cpp/src/Ice/Makefile.mak index 5906305ad26..78d6c50a6bd 100644 --- a/cpp/src/Ice/Makefile.mak +++ b/cpp/src/Ice/Makefile.mak @@ -116,9 +116,12 @@ SDIR = $(slicedir)\Ice CPPFLAGS = -I.. $(CPPFLAGS) -DICE_API_EXPORTS -DFD_SETSIZE=1024 -DWIN32_LEAN_AND_MEAN
SLICE2CPPFLAGS = --ice --include-dir Ice --dll-export ICE_API $(SLICE2CPPFLAGS)
-LINKWITH = $(BASELIBS) $(BZIP2_LIBS) $(ICE_OS_LIBS) ws2_32.lib Iphlpapi.lib
+LINKWITH = $(BASELIBS) $(BZIP2_LIBS) $(ICE_OS_LIBS) ws2_32.lib
+!if "$(CPP_COMPILER)" != "BCC2007"
+LINKWITH = $(LINKWITH) Iphlpapi.lib
+!endif
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
RES_FILE = ,, Ice.res
!else
!if "$(GENERATE_PDB)" == "yes"
@@ -194,7 +197,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp index 4ca5b0babbd..b2665c3e67b 100644 --- a/cpp/src/Ice/Network.cpp +++ b/cpp/src/Ice/Network.cpp @@ -403,6 +403,8 @@ getInterfaceIndex(const string& name) { int index = 0; #ifdef _WIN32 + +#ifndef __BCPLUSPLUS__ IP_ADAPTER_ADDRESSES addrs; ULONG buflen = 0; if(::GetAdaptersAddresses(AF_INET6, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW) @@ -424,6 +426,8 @@ getInterfaceIndex(const string& name) } delete[] buf; } +#endif + #elif !defined(__hpux) index = if_nametoindex(name.c_str()); #endif @@ -436,6 +440,8 @@ getInterfaceAddress(const string& name) struct in_addr addr; addr.s_addr = INADDR_ANY; #ifdef _WIN32 + +#ifndef __BCPLUSPLUS__ IP_ADAPTER_ADDRESSES addrs; ULONG buflen = 0; if(::GetAdaptersAddresses(AF_INET, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW) @@ -460,6 +466,8 @@ getInterfaceAddress(const string& name) } delete[] buf; } +#endif + #else ifreq if_address; strcpy(if_address.ifr_name, name.c_str()); diff --git a/cpp/src/Ice/SelectorThread.cpp b/cpp/src/Ice/SelectorThread.cpp index 8bde6307e5f..d7f2f679a96 100644 --- a/cpp/src/Ice/SelectorThread.cpp +++ b/cpp/src/Ice/SelectorThread.cpp @@ -17,7 +17,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(SelectorThread* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(SelectorThread* p) { return p; } IceInternal::SelectorThread::SelectorThread(const InstancePtr& instance) : _instance(instance), diff --git a/cpp/src/Ice/ServantManager.cpp b/cpp/src/Ice/ServantManager.cpp index a573c89bc7f..8dfcc0d2c66 100644 --- a/cpp/src/Ice/ServantManager.cpp +++ b/cpp/src/Ice/ServantManager.cpp @@ -18,7 +18,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(ServantManager* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ServantManager* p) { return p; } void IceInternal::ServantManager::addServant(const ObjectPtr& object, const Identity& ident, const string& facet) diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 07d7b08492e..85c284e886f 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -23,7 +23,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(ThreadPool* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(ThreadPool* p) { return p; } IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& prefix, int timeout) : _instance(instance), diff --git a/cpp/src/Ice/TraceLevels.cpp b/cpp/src/Ice/TraceLevels.cpp index 028450d5df4..86135ee575c 100644 --- a/cpp/src/Ice/TraceLevels.cpp +++ b/cpp/src/Ice/TraceLevels.cpp @@ -14,7 +14,7 @@ using namespace std; using namespace Ice; using namespace IceInternal; -IceUtil::Shared* IceInternal::upCast(TraceLevels* p) { return p; } +ICE_API IceUtil::Shared* IceInternal::upCast(TraceLevels* p) { return p; } IceInternal::TraceLevels::TraceLevels(const PropertiesPtr& properties) : network(0), diff --git a/cpp/src/IceBox/Makefile.mak b/cpp/src/IceBox/Makefile.mak index 082d5a5a042..7adf4abbfe1 100644 --- a/cpp/src/IceBox/Makefile.mak +++ b/cpp/src/IceBox/Makefile.mak @@ -60,24 +60,34 @@ SPDBFLAGS = /pdb:$(SERVER:.exe=.pdb) APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceBox.res
+SRES_FILE = ,, IceBoxExe.res
+ARES_FILE = ,, IceBoxAdmin.res
+!else
+RES_FILE = IceBox.res
+SRES_FILE = IceBoxExe.res
+ARES_FILE = IceBoxAdmin.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IceBox.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceBox.res $(PREOUT)$@ $(PRELIBS)$(LIBS)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp)
$(SERVER): $(SOBJS) IceBoxExe.res
- $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SOBJS) IceBoxExe.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
- icebox$(LIBSUFFIX).lib
+ $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
+ icebox$(LIBSUFFIX).lib $(SRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
$(ADMIN): $(AOBJS) IceBoxAdmin.res
- $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) IceBoxAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
- icebox$(LIBSUFFIX).lib
+ $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
+ icebox$(LIBSUFFIX).lib $(ARES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -107,7 +117,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IceGrid/Makefile.mak b/cpp/src/IceGrid/Makefile.mak index 81c8f3b7ecd..c7c97cd8ead 100644 --- a/cpp/src/IceGrid/Makefile.mak +++ b/cpp/src/IceGrid/Makefile.mak @@ -101,13 +101,13 @@ ALINKWITH = $(LINKWITH) icegrid$(LIBSUFFIX).lib icexml$(LIBSUFFIX).lib icepatch icebox$(LIBSUFFIX).lib
NLINKWITH = $(ALINKWITH) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib \
icessl$(LIBSUFFIX).lib icestormservice$(LIBSUFFIX).lib $(OPENSSL_LIBS)
-!if "$(CPP_COMPILER)" != "BCC2006"
+!if "$(CPP_COMPILER)" != "BCC2007"
NLINKWITH = $(NLINKWITH) pdh.lib ws2_32.lib
!endif
SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid $(SLICE2CPPFLAGS)
CPPFLAGS = -I. -I.. -Idummyinclude $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
-!if "$(CPP_COMPILER)" != "BCC2006"
+!if "$(CPP_COMPILER)" != "BCC2007"
CPPFLAGS = $(CPPFLAGS) -Zm200
!endif
@@ -117,20 +117,29 @@ RPDBFLAGS = /pdb:$(REGISTRY_SERVER:.exe=.pdb) NPDBFLAGS = /pdb:$(NODE_SERVER:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+ARES_FILE = ,, IceGridAdmin.res
+RRES_FILE = ,, IceGridRegistry.res
+NRES_FILE = ,, IceGridNode.res
+!else
+ARES_FILE = IceGridAdmin.res
+RRES_FILE = IceGridRegistry.res
+NRES_FILE = IceGridNode.res
+!endif
+
$(ADMIN): $(ADMIN_OBJS) IceGridAdmin.res
- $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(ADMIN_OBJS) IceGridAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(ADMIN_OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) $(ARES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) &&\
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
$(REGISTRY_SERVER): $(REGISTRY_SVR_OBJS) IceGridRegistry.res
- $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(REGISTRY_SVR_OBJS) IceGridRegistry.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)$(NLINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(RPDBFLAGS) $(REGISTRY_SVR_OBJS) $(SETARGV) $(PREOUT)$@ \
+ $(PRELIBS)$(NLINKWITH) $(RRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
$(NODE_SERVER): $(NODE_SVR_OBJS) IceGridNode.res
- $(LINK) $(LD_EXEFLAGS) $(NPDBFLAGS) $(NODE_SVR_OBJS) IceGridNode.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)$(NLINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(NPDBFLAGS) $(NODE_SVR_OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(NLINKWITH) $(NRES_FILE)
@if exist $@.manifest \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -196,7 +205,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(ADMIN:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/IceGrid/NodeServerAdminRouter.cpp b/cpp/src/IceGrid/NodeServerAdminRouter.cpp index f54d2634f60..3e30aef52bb 100644 --- a/cpp/src/IceGrid/NodeServerAdminRouter.cpp +++ b/cpp/src/IceGrid/NodeServerAdminRouter.cpp @@ -10,6 +10,7 @@ #include <IceGrid/NodeServerAdminRouter.h> #include <Ice/Ice.h> #include <IceGrid/ServerI.h> +#include <IceGrid/ServerAdapterI.h> using namespace IceGrid; using namespace Ice; diff --git a/cpp/src/IceGrid/SessionServantManager.cpp b/cpp/src/IceGrid/SessionServantManager.cpp index d6b5469ffd1..6f19761a880 100644 --- a/cpp/src/IceGrid/SessionServantManager.cpp +++ b/cpp/src/IceGrid/SessionServantManager.cpp @@ -12,6 +12,10 @@ #include <Ice/ObjectAdapter.h> #include <IceGrid/SessionServantManager.h> +#if defined(__BCPLUSPLUS__) +# include <iterator> +#endif + using namespace std; using namespace IceGrid; diff --git a/cpp/src/IceGridLib/Makefile.mak b/cpp/src/IceGridLib/Makefile.mak index 4f147f79784..f69930f4692 100644 --- a/cpp/src/IceGridLib/Makefile.mak +++ b/cpp/src/IceGridLib/Makefile.mak @@ -41,10 +41,16 @@ CPPFLAGS = -I.. -DICE_GRID_API_EXPORTS $(CPPFLAGS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceGrid.res
+!else
+RES_FILE = IceGrid.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(LIB_OBJS) IceGrid.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) IceGrid.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -71,7 +77,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IcePatch2/Makefile.mak b/cpp/src/IcePatch2/Makefile.mak index 58b9773179b..410223fd6e0 100644 --- a/cpp/src/IcePatch2/Makefile.mak +++ b/cpp/src/IcePatch2/Makefile.mak @@ -68,31 +68,43 @@ CPDBFLAGS = /pdb:$(CLIENT:.exe=.pdb) CAPDBFLAGS = /pdb:$(CALC:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IcePatch2.res
+SRES_FILE = ,, IcePatch2Server.res
+CRES_FILE = ,, IcePatch2Client.res
+CARES_FILE = ,, IcePatch2Calc.res
+!else
+RES_FILE = IcePatch2.res
+SRES_FILE = IcePatch2Server.res
+CRES_FILE = IcePatch2Client.res
+CARES_FILE = IcePatch2Calc.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IcePatch2.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IcePatch2.res $(PREOUT)$@ $(PRELIBS)$(LIBS) $(BZIP2_LIBS) \
- $(OPENSSL_LIBS)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(BZIP2_LIBS) \
+ $(OPENSSL_LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#2 && del /q $@.manifest
@if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp)
$(SERVER): $(SOBJS) IcePatch2Server.res
- $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(SOBJS) IcePatch2Server.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \
- icepatch2$(LIBSUFFIX).lib
+ $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
+ icepatch2$(LIBSUFFIX).lib $(SRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest
$(CLIENT): $(COBJS) IcePatch2Client.res
- $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(COBJS) IcePatch2Client.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \
- icepatch2$(LIBSUFFIX).lib
+ $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(COBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
+ icepatch2$(LIBSUFFIX).lib $(CRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest
$(CALC): $(CALCOBJS) IcePatch2Calc.res
- $(LINK) $(LD_EXEFLAGS) $(CAPDBFLAGS) $(SETARGV) $(CALCOBJS) IcePatch2Calc.res $(PREOUT)$@ $(PRELIBS)$(LIBS) \
- icepatch2$(LIBSUFFIX).lib
+ $(LINK) $(LD_EXEFLAGS) $(CAPDBFLAGS) $(SETARGV) $(CALCOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) \
+ icepatch2$(LIBSUFFIX).lib $(CARES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest security.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -128,7 +140,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IceSSL/Makefile.mak b/cpp/src/IceSSL/Makefile.mak index 9bf80c9ef01..dd1d23986a3 100644 --- a/cpp/src/IceSSL/Makefile.mak +++ b/cpp/src/IceSSL/Makefile.mak @@ -34,7 +34,7 @@ HDIR = $(includedir)\IceSSL CPPFLAGS = -I.. $(CPPFLAGS) -DICE_SSL_API_EXPORTS -DFD_SETSIZE=1024 -DWIN32_LEAN_AND_MEAN
LINKWITH = $(OPENSSL_LIBS) $(LIBS)
-!if "$(CPP_COMPILER)" != "BCC2006"
+!if "$(CPP_COMPILER)" != "BCC2007"
LINKWITH = $(LINKWITH) ws2_32.lib
!endif
@@ -42,10 +42,16 @@ LINKWITH = $(LINKWITH) ws2_32.lib PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceSSL.res
+!else
+RES_FILE = IceSSL.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IceSSL.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceSSL.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -64,7 +70,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IceStorm/Makefile.mak b/cpp/src/IceStorm/Makefile.mak index 1aef50b17ad..43b60e6fd3a 100644 --- a/cpp/src/IceStorm/Makefile.mak +++ b/cpp/src/IceStorm/Makefile.mak @@ -101,10 +101,22 @@ APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb) MPDBFLAGS = /pdb:$(MIGRATE:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceStorm.res
+SRES_FILE = ,, IceStormService.res
+ARES_FILE = ,, IceStormAdmin.res
+MRES_FILE = ,, IceStormMigrate.res
+!else
+RES_FILE = IceStorm.res
+SRES_FILE = IceStormService.res
+ARES_FILE = IceStormAdmin.res
+MRES_FILE = IceStormMigrate.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IceStorm.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceStorm.res $(PREOUT)$@ $(PRELIBS)$(LIBS)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -113,19 +125,19 @@ $(DLLNAME): $(OBJS) IceStorm.res $(SVCLIBNAME): $(SVCDLLNAME)
$(SVCDLLNAME): $(SERVICE_OBJS) IceStormService.res
- $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) IceStormService.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(SRES_FILE)
move $(SVCDLLNAME:.dll=.lib) $(SVCLIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@if exist $(SVCDLLNAME:.dll=.exp) del /q $(SVCDLLNAME:.dll=.exp)
$(ADMIN): $(AOBJS) IceStormAdmin.res
- $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) IceStormAdmin.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(AOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) $(ARES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
$(MIGRATE): $(MOBJS) IceStormMigrate.res
- $(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) IceStormMigrate.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH) $(MRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -230,7 +242,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IceStorm/Observers.cpp b/cpp/src/IceStorm/Observers.cpp index 8240a555c3a..5cafa770133 100644 --- a/cpp/src/IceStorm/Observers.cpp +++ b/cpp/src/IceStorm/Observers.cpp @@ -125,8 +125,12 @@ Observers::check() } int id = p->id; p = _observers.erase(p); - IceUtil::Mutex::Lock sync(_reapedMutex); + + // COMPILERFIX: Just using following causes double unlock with C++Builder 2007 + //IceUtil::Mutex::Lock sync(_reapedMutex); + _reapedMutex.lock(); _reaped.push_back(id); + _reapedMutex.unlock(); continue; } ++p; @@ -256,8 +260,12 @@ Observers::wait(const string& op) } int id = p->id; p = _observers.erase(p); - IceUtil::Mutex::Lock sync(_reapedMutex); + + // COMPILERFIX: Just using following causes double unlock with C++Builder 2007 + //IceUtil::Mutex::Lock sync(_reapedMutex); + _reapedMutex.lock(); _reaped.push_back(id); + _reapedMutex.unlock(); continue; } ++p; diff --git a/cpp/src/IceStorm/Service.cpp b/cpp/src/IceStorm/Service.cpp index 44cbd5bf24a..a8664970cfa 100644 --- a/cpp/src/IceStorm/Service.cpp +++ b/cpp/src/IceStorm/Service.cpp @@ -18,6 +18,7 @@ #include <IceUtil/StringUtil.h> #include <IceStorm/NodeI.h> +#include <IceStorm/TransientTopicI.h> #include <IceGrid/Locator.h> #include <IceGrid/Query.h> diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp index a391ab306de..a2ac604b93a 100644 --- a/cpp/src/IceStorm/TopicI.cpp +++ b/cpp/src/IceStorm/TopicI.cpp @@ -473,7 +473,6 @@ TopicImpl::TopicImpl( { Ice::Warning out(traceLevels->logger); out << _name << " recreate " << _instance->communicator()->identityToString(id) << " failed: " << ex; - continue; } } } diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index 077a77e0f2a..06b29b61c78 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -16,6 +16,7 @@ #include <IceStorm/NodeI.h> #include <IceStorm/Observers.h> +#include <IceStorm/Subscriber.h> #include <Ice/SliceChecksums.h> diff --git a/cpp/src/IceStorm/TransientTopicManagerI.cpp b/cpp/src/IceStorm/TransientTopicManagerI.cpp index a928007c975..8ee99bbde7c 100644 --- a/cpp/src/IceStorm/TransientTopicManagerI.cpp +++ b/cpp/src/IceStorm/TransientTopicManagerI.cpp @@ -12,6 +12,7 @@ #include <IceStorm/TransientTopicI.h> #include <IceStorm/TraceLevels.h> #include <IceStorm/Instance.h> +#include <IceStorm/Subscriber.h> #include <Ice/Ice.h> diff --git a/cpp/src/IceUtil/Makefile.mak b/cpp/src/IceUtil/Makefile.mak index d3dabd7269d..8a40fd66062 100644 --- a/cpp/src/IceUtil/Makefile.mak +++ b/cpp/src/IceUtil/Makefile.mak @@ -46,6 +46,12 @@ CPPFLAGS = $(CPPFLAGS) -DICE_UTIL_API_EXPORTS -I.. -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceUtil.res
+!else
+RES_FILE = IceUtil.res
+!endif
+
!if "$(STATICLIBS)" == "yes"
$(DLLNAME):
@@ -58,7 +64,7 @@ $(LIBNAME): $(OBJS) $(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IceUtil.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceUtil.res $(PREOUT)$@ $(PRELIBS)$(ICE_OS_LIBS)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(ICE_OS_LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -79,7 +85,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/IceXML/Makefile.mak b/cpp/src/IceXML/Makefile.mak index ab41e476cfb..9252cce8113 100644 --- a/cpp/src/IceXML/Makefile.mak +++ b/cpp/src/IceXML/Makefile.mak @@ -28,10 +28,16 @@ LINKWITH = $(EXPAT_LIBS) $(BASELIBS) PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceXML.res
+!else
+RES_FILE = IceXML.res
+!endif
+
$(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) IceXML.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) IceXML.res $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -50,7 +56,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/Slice/Makefile.mak b/cpp/src/Slice/Makefile.mak index 0b361d34eae..fe7f6db304d 100644 --- a/cpp/src/Slice/Makefile.mak +++ b/cpp/src/Slice/Makefile.mak @@ -40,6 +40,12 @@ CPPFLAGS = -I.. -Idummyinclude $(CPPFLAGS) -DSLICE_API_EXPORTS -DWIN32_LEAN_AND PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice.res
+!else
+RES_FILE = Slice.res
+!endif
+
!if "$(STATICLIBS)" == "yes"
$(DLLNAME):
@@ -52,7 +58,7 @@ $(LIBNAME): $(OBJS) $(LIBNAME): $(DLLNAME)
$(DLLNAME): $(OBJS) Slice.res
- $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) Slice.res $(PREOUT)$@ $(PRELIBS)$(BASELIBS) mcpp$(LIBSUFFIX).lib
+ $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(BASELIBS) $(MCPP_LIBS) $(RES_FILE)
move $(DLLNAME:.dll=.lib) $(LIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -89,7 +95,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(DLLNAME:.dll=.tds) $(install_bindir)
diff --git a/cpp/src/Slice/Util.cpp b/cpp/src/Slice/Util.cpp index 470821a68b3..c4cb197e655 100644 --- a/cpp/src/Slice/Util.cpp +++ b/cpp/src/Slice/Util.cpp @@ -15,6 +15,10 @@ # include <unistd.h> #endif +#ifdef __BCPLUSPLUS__ +# include <dir.h> +#endif + using namespace std; using namespace Slice; diff --git a/cpp/src/iceserviceinstall/Install.cpp b/cpp/src/iceserviceinstall/Install.cpp index c1e11015280..0c46d3a35e2 100755 --- a/cpp/src/iceserviceinstall/Install.cpp +++ b/cpp/src/iceserviceinstall/Install.cpp @@ -67,7 +67,7 @@ Install::run(int argc, char* argv[]) vector<string> commands; try { - commands = opts.parse(argc, argv); + commands = opts.parse(argc, (const char**)argv); } catch(const IceUtilInternal::BadOptException& e) { diff --git a/cpp/src/iceserviceinstall/Makefile.mak b/cpp/src/iceserviceinstall/Makefile.mak index b54ab80710a..a97200a38f0 100755 --- a/cpp/src/iceserviceinstall/Makefile.mak +++ b/cpp/src/iceserviceinstall/Makefile.mak @@ -33,8 +33,14 @@ EXTRA_MANIFEST = security.manifest PDBFLAGS = /pdb:$(TOOL:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, IceServiceInstall.res
+!else
+RES_FILE = IceServiceInstall.res
+!endif
+
$(TOOL): $(OBJS) IceServiceInstall.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) IceServiceInstall.res $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest $(EXTRA_MANIFEST) -outputresource:$@;#1 && del /q $@.manifest
@@ -51,7 +57,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(TOOL:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2cpp/Makefile.mak b/cpp/src/slice2cpp/Makefile.mak index 433bcac6e89..cbcf0fd0368 100644 --- a/cpp/src/slice2cpp/Makefile.mak +++ b/cpp/src/slice2cpp/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Cpp.res
+!else
+RES_FILE = Slice2Cpp.res
+!endif
+
$(NAME): $(OBJS) Slice2Cpp.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Cpp.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2cppe/Makefile.mak b/cpp/src/slice2cppe/Makefile.mak index 956d83bd492..3680bd5b7d1 100644 --- a/cpp/src/slice2cppe/Makefile.mak +++ b/cpp/src/slice2cppe/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2CppE.res
+!else
+RES_FILE = Slice2CppE.res
+!endif
+
$(NAME): $(OBJS) Slice2CppE.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2CppE.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index a4e0baee242..e16e3f67600 100755 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -735,7 +735,7 @@ Slice::CsVisitor::writeDispatchAndMarshalling(const ClassDefPtr& p, bool stream) string memberType = typeToString((*d)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*d)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -2029,7 +2029,7 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string memberType = typeToString((*q)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -2387,7 +2387,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) string memberName = fixId((*q)->name(), isClass ? DotNet::ICloneable : 0); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(classMembers.size() > 1) { @@ -3643,9 +3643,9 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) } _out << " e__ in v__)"; _out << sb; - string keyArg = isNewMapping ? "e__.Key" : "((" + keyS + ")e__.Key)"; + string keyArg = isNewMapping ? string("e__.Key") : "((" + keyS + ")e__.Key)"; writeMarshalUnmarshalCode(_out, key, keyArg, true, false, false); - string valueArg = isNewMapping ? "e__.Value" : "((" + valueS + ")e__.Value)"; + string valueArg = isNewMapping ? string("e__.Value") : "((" + valueS + ")e__.Value)"; writeMarshalUnmarshalCode(_out, value, valueArg, true, false, false); _out << eb; _out << eb; @@ -4053,7 +4053,7 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << retS << " ret__;"; ContainedPtr contained = ContainedPtr::dynamicCast(ret); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "IceInternal.ParamPatcher<" << retS << "> ret___PP = new IceInternal.ParamPatcher<" << retS << ">(\"" << sliceId << "\");"; _out << nl << "is__.readObject(ret___PP);"; diff --git a/cpp/src/slice2cs/Makefile.mak b/cpp/src/slice2cs/Makefile.mak index 02d60d3f5a7..bbb884c5022 100644 --- a/cpp/src/slice2cs/Makefile.mak +++ b/cpp/src/slice2cs/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Cs.res
+!else
+RES_FILE = Slice2Cs.res
+!endif
+
$(NAME): $(OBJS) Slice2Cs.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Cs.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2docbook/Makefile.mak b/cpp/src/slice2docbook/Makefile.mak index b810365c1cf..4bffe9bc0c7 100644 --- a/cpp/src/slice2docbook/Makefile.mak +++ b/cpp/src/slice2docbook/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Docbook.res
+!else
+RES_FILE = Slice2Docbook.res
+!endif
+
$(NAME): $(OBJS) Slice2Docbook.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Docbook.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2freeze/Makefile.mak b/cpp/src/slice2freeze/Makefile.mak index 642e5eb78c1..93b43afba3b 100644 --- a/cpp/src/slice2freeze/Makefile.mak +++ b/cpp/src/slice2freeze/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Freeze.res
+!else
+RES_FILE = Slice2Freeze.res
+!endif
+
$(NAME): $(OBJS) Slice2Freeze.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Freeze.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2freezej/Makefile.mak b/cpp/src/slice2freezej/Makefile.mak index 30539e60fb5..c5d2fef472a 100644 --- a/cpp/src/slice2freezej/Makefile.mak +++ b/cpp/src/slice2freezej/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2FreezeJ.res
+!else
+RES_FILE = Slice2FreezeJ.res
+!endif
+
$(NAME): $(OBJS) Slice2FreezeJ.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2FreezeJ.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2html/Makefile.mak b/cpp/src/slice2html/Makefile.mak index a3110b9790f..75f9a0e680e 100644 --- a/cpp/src/slice2html/Makefile.mak +++ b/cpp/src/slice2html/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Html.res
+!else
+RES_FILE = Slice2Html.res
+!endif
+
$(NAME): $(OBJS) Slice2Html.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Html.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2java/Makefile.mak b/cpp/src/slice2java/Makefile.mak index cee1a3e638f..f4530ae60ce 100644 --- a/cpp/src/slice2java/Makefile.mak +++ b/cpp/src/slice2java/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Java.res
+!else
+RES_FILE = Slice2Java.res
+!endif
+
$(NAME): $(OBJS) Slice2Java.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Java.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2javae/Makefile.mak b/cpp/src/slice2javae/Makefile.mak index c74e55bb3e2..c2674b76c01 100644 --- a/cpp/src/slice2javae/Makefile.mak +++ b/cpp/src/slice2javae/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2JavaE.res
+!else
+RES_FILE = Slice2JavaE.res
+!endif
+
$(NAME): $(OBJS) Slice2JavaE.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2JavaE.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2py/Makefile.mak b/cpp/src/slice2py/Makefile.mak index 9acdec7cd7e..e0658311397 100644 --- a/cpp/src/slice2py/Makefile.mak +++ b/cpp/src/slice2py/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Py.res
+!else
+RES_FILE = Slice2Py.res
+!endif
+
$(NAME): $(OBJS) Slice2Py.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Py.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2rb/Makefile.mak b/cpp/src/slice2rb/Makefile.mak index 854f3d66d01..da25cbde75f 100755 --- a/cpp/src/slice2rb/Makefile.mak +++ b/cpp/src/slice2rb/Makefile.mak @@ -25,9 +25,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Rb.res
+!else
+RES_FILE = Slice2Rb.res
+!endif
+
$(NAME): $(OBJS) Slice2Rb.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Rb.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -43,7 +49,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
diff --git a/cpp/src/slice2sl/Gen.cpp b/cpp/src/slice2sl/Gen.cpp index f9f3538e32b..928c019f67d 100755 --- a/cpp/src/slice2sl/Gen.cpp +++ b/cpp/src/slice2sl/Gen.cpp @@ -281,7 +281,7 @@ Slice::CsVisitor::writeDispatchAndMarshalling(const ClassDefPtr& p) string memberType = typeToString((*d)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*d)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -1461,7 +1461,7 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string memberType = typeToString((*q)->type()); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(allClassMembers.size() > 1) { @@ -1731,7 +1731,7 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) string memberName = fixId((*q)->name(), isClass ? DotNet::ICloneable : 0); _out << nl << "_instance." << memberName << " = (" << memberType << ")v;"; ContainedPtr contained = ContainedPtr::dynamicCast((*q)->type()); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "_typeId = \"" << sliceId << "\";"; if(classMembers.size() > 1) { @@ -2621,7 +2621,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << retS << " ret__;"; ContainedPtr contained = ContainedPtr::dynamicCast(ret); - string sliceId = contained ? contained->scoped() : "::Ice::Object"; + string sliceId = contained ? contained->scoped() : string("::Ice::Object"); _out << nl << "IceInternal.ParamPatcher<" << retS << "> ret___PP = new IceInternal.ParamPatcher<" << retS << ">(\"" << sliceId << "\");"; _out << nl << "is__.readObject(ret___PP);"; @@ -3051,9 +3051,9 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) } _out << " e__ in v__)"; _out << sb; - string keyArg = isNewMapping ? "e__.Key" : "((" + keyS + ")e__.Key)"; + string keyArg = isNewMapping ? string("e__.Key") : "((" + keyS + ")e__.Key)"; writeMarshalUnmarshalCode(_out, key, keyArg, true, false, false); - string valueArg = isNewMapping ? "e__.Value" : "((" + valueS + ")e__.Value)"; + string valueArg = isNewMapping ? string("e__.Value") : "((" + valueS + ")e__.Value)"; writeMarshalUnmarshalCode(_out, value, valueArg, true, false, false); _out << eb; _out << eb; diff --git a/cpp/src/slice2sl/Makefile.mak b/cpp/src/slice2sl/Makefile.mak index 0d016eba517..7a8ec7a873e 100644 --- a/cpp/src/slice2sl/Makefile.mak +++ b/cpp/src/slice2sl/Makefile.mak @@ -26,9 +26,15 @@ CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
+!if "$(CPP_COMPILER)" == "BCC2007"
+RES_FILE = ,, Slice2Sl.res
+!else
+RES_FILE = Slice2Sl.res
+!endif
+
$(NAME): $(OBJS) Slice2Sl.res
- $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) Slice2Sl.res $(SETARGV) $(PREOUT)$@ \
- $(PRELIBS)slice$(LIBSUFFIX).lib $(BASELIBS)
+ $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)slice$(LIBSUFFIX).lib \
+ $(BASELIBS) $(RES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
@@ -44,7 +50,7 @@ install:: all !if "$(OPTIMIZE)" != "yes"
-!if "$(CPP_COMPILER)" == "BCC2006"
+!if "$(CPP_COMPILER)" == "BCC2007"
install:: all
copy $(NAME:.exe=.tds) $(install_bindir)
|