summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-08-10 11:30:38 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-08-10 11:30:38 +0200
commitf3887e67cd7fbdb4a2015e7e743a18253f597de0 (patch)
tree09c7660d864fb01973864a441d5674f0a497bd25 /cpp
parentConfig bug fix (diff)
downloadice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.tar.bz2
ice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.tar.xz
ice-f3887e67cd7fbdb4a2015e7e743a18253f597de0.zip
Windows fixes
Diffstat (limited to 'cpp')
-rw-r--r--cpp/demo/Ice/throughput/config.client2
-rw-r--r--cpp/demo/Ice/throughput/config.server2
-rw-r--r--cpp/include/Ice/.gitignore3
-rw-r--r--cpp/include/Ice/Makefile.mak4
-rw-r--r--cpp/include/Ice/ObserverHelper.h2
-rw-r--r--cpp/include/IceUtil/Makefile.mak4
-rw-r--r--cpp/include/IceUtil/StopWatch.h6
-rw-r--r--cpp/src/Ice/.gitignore3
-rw-r--r--cpp/src/Ice/ConnectionI.cpp31
-rw-r--r--cpp/src/Ice/EndpointI.cpp6
-rw-r--r--cpp/src/Ice/Makefile.mak9
-rw-r--r--cpp/src/Ice/MetricsAdminI.cpp49
-rw-r--r--cpp/src/Ice/MetricsAdminI.h15
-rw-r--r--cpp/src/Ice/MetricsObserverI.h2
-rw-r--r--cpp/src/Ice/Selector.h2
-rw-r--r--cpp/src/Ice/ThreadPool.cpp2
-rw-r--r--cpp/src/Ice/winrt/Makefile.mak9
17 files changed, 79 insertions, 72 deletions
diff --git a/cpp/demo/Ice/throughput/config.client b/cpp/demo/Ice/throughput/config.client
index 844ab9f4887..4304ecd3d6c 100644
--- a/cpp/demo/Ice/throughput/config.client
+++ b/cpp/demo/Ice/throughput/config.client
@@ -23,4 +23,4 @@ Ice.Admin.InstanceName=client
IceMX.Metrics.Debug.GroupBy=id
IceMX.Metrics.OnParent.GroupBy=parent
-IceMX.Metrics.PerOperation.Invocation.GroupBy=id
+IceMX.Metrics.PerOperation.Map.Invocation.GroupBy=id
diff --git a/cpp/demo/Ice/throughput/config.server b/cpp/demo/Ice/throughput/config.server
index 3752e7223b9..19230d21021 100644
--- a/cpp/demo/Ice/throughput/config.server
+++ b/cpp/demo/Ice/throughput/config.server
@@ -24,4 +24,4 @@ Ice.Admin.InstanceName=server
IceMX.Metrics.Debug.GroupBy=id
IceMX.Metrics.OnParent.GroupBy=parent
-IceMX.Metrics.PerOperation.Dispatch.GroupBy=operation
+IceMX.Metrics.PerOperation.Map.Dispatch.GroupBy=operation
diff --git a/cpp/include/Ice/.gitignore b/cpp/include/Ice/.gitignore
index 1566a24c88f..9c0b2efad51 100644
--- a/cpp/include/Ice/.gitignore
+++ b/cpp/include/Ice/.gitignore
@@ -19,10 +19,13 @@ LocatorF.h
Locator.h
LoggerF.h
Logger.h
+Metrics.h
ObjectAdapterF.h
ObjectAdapter.h
ObjectFactoryF.h
ObjectFactory.h
+ObserverF.h
+Observer.h
PluginF.h
Plugin.h
ProcessF.h
diff --git a/cpp/include/Ice/Makefile.mak b/cpp/include/Ice/Makefile.mak
index 379a039d689..beac405aa34 100644
--- a/cpp/include/Ice/Makefile.mak
+++ b/cpp/include/Ice/Makefile.mak
@@ -77,6 +77,7 @@ SDK_HEADERS = $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\BasicStream.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Logger.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\LoggerF.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\LoggerUtil.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Metrics.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Object.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObjectAdapter.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObjectAdapterF.h \
@@ -84,6 +85,9 @@ SDK_HEADERS = $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\BasicStream.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObjectF.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObjectFactory.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObjectFactoryF.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Observer.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObserverF.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ObserverHelper.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Outgoing.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\OutgoingAsync.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\OutgoingAsyncF.h \
diff --git a/cpp/include/Ice/ObserverHelper.h b/cpp/include/Ice/ObserverHelper.h
index cfc6421ec93..a73db590f34 100644
--- a/cpp/include/Ice/ObserverHelper.h
+++ b/cpp/include/Ice/ObserverHelper.h
@@ -91,7 +91,7 @@ protected:
TPtr _observer;
};
-class InvocationObserver : public ObserverHelperT<Ice::Instrumentation::InvocationObserver>
+class ICE_API InvocationObserver : public ObserverHelperT<Ice::Instrumentation::InvocationObserver>
{
public:
diff --git a/cpp/include/IceUtil/Makefile.mak b/cpp/include/IceUtil/Makefile.mak
index c977acd2690..3bbb77f8842 100644
--- a/cpp/include/IceUtil/Makefile.mak
+++ b/cpp/include/IceUtil/Makefile.mak
@@ -49,16 +49,18 @@ SDK_HEADERS = $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\AbstractMutex.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\OutputUtil.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Random.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\RecMutex.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ScannerConfig.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ScopedArray.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Shared.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\StringUtil.h \
+ $(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\StopWatch.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Thread.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\ThreadException.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Time.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Timer.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\UUID.h \
$(SDK_INCLUDE_PATH)\$(INCLUDE_DIR)\Unicode.h
-
+
all:: $(SDK_HEADERS)
!endif
diff --git a/cpp/include/IceUtil/StopWatch.h b/cpp/include/IceUtil/StopWatch.h
index 1ffabf199a1..14f07e40682 100644
--- a/cpp/include/IceUtil/StopWatch.h
+++ b/cpp/include/IceUtil/StopWatch.h
@@ -15,7 +15,7 @@
namespace IceUtilInternal
{
-class ICE_UTIL_API StopWatch
+class StopWatch
{
public:
@@ -26,10 +26,10 @@ public:
_s = IceUtil::Time::now(IceUtil::Time::Monotonic);
}
- long stop()
+ IceUtil::Int64 stop()
{
assert(isStarted());
- long d = (IceUtil::Time::now(IceUtil::Time::Monotonic) - _s).toMicroSeconds();
+ IceUtil::Int64 d = (IceUtil::Time::now(IceUtil::Time::Monotonic) - _s).toMicroSeconds();
_s = IceUtil::Time();
return d;
}
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