From f3887e67cd7fbdb4a2015e7e743a18253f597de0 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Fri, 10 Aug 2012 11:30:38 +0200 Subject: Windows fixes --- cpp/src/Ice/.gitignore | 3 +++ cpp/src/Ice/ConnectionI.cpp | 31 ++++++++++++++------------ cpp/src/Ice/EndpointI.cpp | 6 ++++++ cpp/src/Ice/Makefile.mak | 9 ++++++++ cpp/src/Ice/MetricsAdminI.cpp | 49 +++++++++++------------------------------- cpp/src/Ice/MetricsAdminI.h | 15 ++----------- cpp/src/Ice/MetricsObserverI.h | 2 +- cpp/src/Ice/Selector.h | 2 ++ cpp/src/Ice/ThreadPool.cpp | 2 +- cpp/src/Ice/winrt/Makefile.mak | 9 ++++++++ 10 files changed, 63 insertions(+), 65 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/Ice/.gitignore b/cpp/src/Ice/.gitignore index 0a81a49dd6e..b65a953e025 100644 --- a/cpp/src/Ice/.gitignore +++ b/cpp/src/Ice/.gitignore @@ -19,10 +19,13 @@ LocatorF.cpp Locator.cpp LoggerF.cpp Logger.cpp +Metrics.cpp ObjectAdapterF.cpp ObjectAdapter.cpp ObjectFactoryF.cpp ObjectFactory.cpp +ObserverF.cpp +Observer.cpp PluginF.cpp Plugin.cpp ProcessF.cpp diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp index b823e77de2f..afc70dcf85f 100644 --- a/cpp/src/Ice/ConnectionI.cpp +++ b/cpp/src/Ice/ConnectionI.cpp @@ -1335,21 +1335,24 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current) unscheduleTimeout(current.operation); if(current.operation & SocketOperationWrite && !_writeStream.b.empty()) { - if(_observer.get() && _writeStream.i != _writeStream.b.end()) + if(_writeStream.i != _writeStream.b.end()) { - _observer->startWrite(); - } - - if(_writeStream.i != _writeStream.b.end() && !_transceiver->write(_writeStream)) - { - assert(!_writeStream.b.empty()); - scheduleTimeout(SocketOperationWrite, _endpoint->timeout()); - return; - } - - if(_observer.get()) - { - _observer->finishWrite(); + if(_observer.get()) + { + _observer->startWrite(); + } + + if(!_transceiver->write(_writeStream)) + { + assert(!_writeStream.b.empty()); + scheduleTimeout(SocketOperationWrite, _endpoint->timeout()); + return; + } + + if(_observer.get()) + { + _observer->finishWrite(); + } } assert(_writeStream.i == _writeStream.b.end()); } diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp index d53cf2ec612..a0b6f0c4415 100644 --- a/cpp/src/Ice/EndpointI.cpp +++ b/cpp/src/Ice/EndpointI.cpp @@ -360,6 +360,12 @@ IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& insta { } +vector +IceInternal::EndpointHostResolver::resolve(const string& host, int port, const EndpointIPtr& endpoint) +{ + return endpoint->connectors(); +} + void IceInternal::EndpointHostResolver::resolve(const string&, int, const EndpointIPtr& endpoint, diff --git a/cpp/src/Ice/Makefile.mak b/cpp/src/Ice/Makefile.mak index 522da39075e..37f401cc50d 100644 --- a/cpp/src/Ice/Makefile.mak +++ b/cpp/src/Ice/Makefile.mak @@ -60,6 +60,9 @@ OBJS = Acceptor.obj \ LoggerI.obj \ Logger.obj \ LoggerUtil.obj \ + Metrics.obj \ + MetricsAdminI.obj \ + MetricsObserverI.obj \ Network.obj \ ObjectAdapterFactory.obj \ ObjectAdapterI.obj \ @@ -67,6 +70,9 @@ OBJS = Acceptor.obj \ ObjectFactoryManager.obj \ ObjectFactory.obj \ Object.obj \ + Observer.obj \ + ObserverHelper.obj \ + ObserverI.obj \ OpaqueEndpointI.obj \ OutgoingAsync.obj \ Outgoing.obj \ @@ -171,8 +177,11 @@ clean:: -del /q Locator.cpp $(HDIR)\Locator.h -del /q LoggerF.cpp $(HDIR)\LoggerF.h -del /q Logger.cpp $(HDIR)\Logger.h + -del /q Metrics.cpp $(HDIR)\Metrics.h -del /q ObjectAdapterF.cpp $(HDIR)\ObjectAdapterF.h -del /q ObjectAdapter.cpp $(HDIR)\ObjectAdapter.h + -del /q Observer.cpp $(HDIR)\Observer.h + -del /q ObserverF.cpp $(HDIR)\ObserverF.h -del /q ObjectFactoryF.cpp $(HDIR)\ObjectFactoryF.h -del /q ObjectFactory.cpp $(HDIR)\ObjectFactory.h -del /q PluginF.cpp $(HDIR)\PluginF.h diff --git a/cpp/src/Ice/MetricsAdminI.cpp b/cpp/src/Ice/MetricsAdminI.cpp index 8000dd429e4..9cf34111335 100644 --- a/cpp/src/Ice/MetricsAdminI.cpp +++ b/cpp/src/Ice/MetricsAdminI.cpp @@ -179,7 +179,7 @@ MetricsMapI::detached(Entry* entry) return; } - assert(_detachedQueue.size() <= _retain); + assert(static_cast(_detachedQueue.size()) <= _retain); deque::iterator p = _detachedQueue.begin(); while(p != _detachedQueue.end()) @@ -209,7 +209,7 @@ MetricsMapI::detached(Entry* entry) _detachedQueue.push_back(entry); } -MetricsViewI::MetricsViewI(bool enabled) : _enabled(enabled) +MetricsViewI::MetricsViewI() { } @@ -229,12 +229,9 @@ MetricsView MetricsViewI::getMetrics() { MetricsView metrics; - if(_enabled) + for(map::const_iterator p = _maps.begin(); p != _maps.end(); ++p) { - for(map::const_iterator p = _maps.begin(); p != _maps.end(); ++p) - { - metrics.insert(make_pair(p->first, p->second->getMetrics())); - } + metrics.insert(make_pair(p->first, p->second->getMetrics())); } return metrics; } @@ -253,13 +250,10 @@ MetricsViewI::getFailures(const string& mapName) MetricsMapI::EntryPtr MetricsViewI::getMatching(const MetricsHelper& helper) const { - if(_enabled) + map::const_iterator p = _maps.find(helper.getMapName()); + if(p != _maps.end()) { - map::const_iterator p = _maps.find(helper.getMapName()); - if(p != _maps.end()) - { - return p->second->getMatching(helper); - } + return p->second->getMatching(helper); } return 0; } @@ -303,12 +297,16 @@ MetricsAdminI::addFactory(const string& mapName, const MetricsMapFactoryPtr& fac { viewName = viewName.substr(0, dotPos); } + + if(_properties->getPropertyAsIntWithDefault(viewsPrefix + viewName + ".Disabled", 0) > 0) + { + continue; // The view is disabled + } map::const_iterator q = _views.find(viewName); if(q == _views.end()) { - bool disabled = _properties->getPropertyAsIntWithDefault(viewsPrefix + viewName + ".Disabled", 0) > 0; - q = _views.insert(make_pair(viewName, new MetricsViewI(!disabled))).first; + q = _views.insert(make_pair(viewName, new MetricsViewI())).first; } MetricsViewIPtr view = q->second; @@ -440,24 +438,3 @@ MetricsAdminI::removeMapFromView(const string& view, const string& mapName, cons } } -void -MetricsAdminI::setViewEnabled(const string& view, bool enabled) -{ - vector maps; - { - Lock sync(*this); - map::const_iterator p = _views.find(view); - if(p == _views.end()) - { - throw UnknownMetricsView(); - } - p->second->setEnabled(enabled); - maps = p->second->getMaps(); - } - for(vector::const_iterator p = maps.begin(); p != maps.end(); ++p) - { - _updaters[*p]->update(); - } -} - - diff --git a/cpp/src/Ice/MetricsAdminI.h b/cpp/src/Ice/MetricsAdminI.h index a3542a33070..3cf635b41a0 100644 --- a/cpp/src/Ice/MetricsAdminI.h +++ b/cpp/src/Ice/MetricsAdminI.h @@ -75,7 +75,7 @@ public: } void - detach(long lifetime) + detach(Ice::Long lifetime) { bool detached = false; { @@ -273,17 +273,7 @@ class MetricsViewI : public IceUtil::Shared { public: - MetricsViewI(bool); - - void setEnabled(bool enabled) - { - _enabled = enabled; - } - - bool isEnabled() const - { - return _enabled; - } + MetricsViewI(); void add(const std::string&, const MetricsMapIPtr&); void remove(const std::string&); @@ -298,7 +288,6 @@ public: private: std::map _maps; - bool _enabled; }; typedef IceUtil::Handle MetricsViewIPtr; diff --git a/cpp/src/Ice/MetricsObserverI.h b/cpp/src/Ice/MetricsObserverI.h index f3c1581f2e4..e4456205f6e 100644 --- a/cpp/src/Ice/MetricsObserverI.h +++ b/cpp/src/Ice/MetricsObserverI.h @@ -297,7 +297,7 @@ public: virtual void detach() { - long lifetime = _watch.stop(); + Ice::Long lifetime = _watch.stop(); for(typename SeqType::const_iterator p = _objects.begin(); p != _objects.end(); ++p) { p->second->detach(lifetime); diff --git a/cpp/src/Ice/Selector.h b/cpp/src/Ice/Selector.h index cf3e152ff55..06727cf1a56 100644 --- a/cpp/src/Ice/Selector.h +++ b/cpp/src/Ice/Selector.h @@ -10,6 +10,8 @@ #pragma once #include +#include +#include #include #include diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 3f37c88b024..2faf56e1538 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -762,7 +762,7 @@ IceInternal::ThreadPool::run(const EventHandlerThreadPtr& thread) } } #else - ThreadPoolCurrent current(_instance, this); + ThreadPoolCurrent current(_instance, this, thread); while(true) { try diff --git a/cpp/src/Ice/winrt/Makefile.mak b/cpp/src/Ice/winrt/Makefile.mak index a0b71c11842..1e40c3599ea 100644 --- a/cpp/src/Ice/winrt/Makefile.mak +++ b/cpp/src/Ice/winrt/Makefile.mak @@ -56,6 +56,9 @@ OBJS = $(ARCH)\$(CONFIG)\Acceptor.obj \ $(ARCH)\$(CONFIG)\LoggerI.obj \ $(ARCH)\$(CONFIG)\Logger.obj \ $(ARCH)\$(CONFIG)\LoggerUtil.obj \ + $(ARCH)\$(CONFIG)\Metrics.obj \ + $(ARCH)\$(CONFIG)\MetricsAdminI.obj \ + $(ARCH)\$(CONFIG)\MetricsObserverI.obj \ $(ARCH)\$(CONFIG)\Network.obj \ $(ARCH)\$(CONFIG)\ObjectAdapterFactory.obj \ $(ARCH)\$(CONFIG)\ObjectAdapterI.obj \ @@ -63,6 +66,9 @@ OBJS = $(ARCH)\$(CONFIG)\Acceptor.obj \ $(ARCH)\$(CONFIG)\ObjectFactoryManager.obj \ $(ARCH)\$(CONFIG)\ObjectFactory.obj \ $(ARCH)\$(CONFIG)\Object.obj \ + $(ARCH)\$(CONFIG)\Observer.obj \ + $(ARCH)\$(CONFIG)\ObserverHelper.obj \ + $(ARCH)\$(CONFIG)\ObserverI.obj \ $(ARCH)\$(CONFIG)\OpaqueEndpointI.obj \ $(ARCH)\$(CONFIG)\OutgoingAsync.obj \ $(ARCH)\$(CONFIG)\Outgoing.obj \ @@ -251,6 +257,9 @@ clean:: -del /q $(SOURCE_DIR)\Locator.cpp $(HDIR)\Locator.h -del /q $(SOURCE_DIR)\LoggerF.cpp $(HDIR)\LoggerF.h -del /q $(SOURCE_DIR)\Logger.cpp $(HDIR)\Logger.h + -del /q $(SOURCE_DIR)\Metrics.cpp $(HDIR)\Metrics.h + -del /q $(SOURCE_DIR)\Observer.cpp $(HDIR)\Observer.h + -del /q $(SOURCE_DIR)\ObserverF.cpp $(HDIR)\ObserverF.h -del /q $(SOURCE_DIR)\ObjectAdapterF.cpp $(HDIR)\ObjectAdapterF.h -del /q $(SOURCE_DIR)\ObjectAdapter.cpp $(HDIR)\ObjectAdapter.h -del /q $(SOURCE_DIR)\ObjectFactoryF.cpp $(HDIR)\ObjectFactoryF.h -- cgit v1.2.3