diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/.gitignore | 3 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionI.cpp | 31 | ||||
-rw-r--r-- | cpp/src/Ice/EndpointI.cpp | 6 | ||||
-rw-r--r-- | cpp/src/Ice/Makefile.mak | 9 | ||||
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.cpp | 49 | ||||
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.h | 15 | ||||
-rw-r--r-- | cpp/src/Ice/MetricsObserverI.h | 2 | ||||
-rw-r--r-- | cpp/src/Ice/Selector.h | 2 | ||||
-rw-r--r-- | cpp/src/Ice/ThreadPool.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Ice/winrt/Makefile.mak | 9 |
10 files changed, 63 insertions, 65 deletions
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<ConnectorPtr> +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<int>(_detachedQueue.size()) <= _retain); deque<Entry*>::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<string, MetricsMapIPtr>::const_iterator p = _maps.begin(); p != _maps.end(); ++p) { - for(map<string, MetricsMapIPtr>::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<string, MetricsMapIPtr>::const_iterator p = _maps.find(helper.getMapName()); + if(p != _maps.end()) { - map<string, MetricsMapIPtr>::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<string, MetricsViewIPtr>::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<string> maps; - { - Lock sync(*this); - map<string, MetricsViewIPtr>::const_iterator p = _views.find(view); - if(p == _views.end()) - { - throw UnknownMetricsView(); - } - p->second->setEnabled(enabled); - maps = p->second->getMaps(); - } - for(vector<string>::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<std::string, MetricsMapIPtr> _maps; - bool _enabled; }; typedef IceUtil::Handle<MetricsViewI> 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 <IceUtil/StringUtil.h> +#include <IceUtil/Monitor.h> +#include <IceUtil/Mutex.h> #include <Ice/Network.h> #include <Ice/InstanceF.h> 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 |