diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-10-22 16:33:13 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-10-22 16:33:13 +0200 |
commit | d8da15a2d803da81b76568d0c8f620f8ed26d0fa (patch) | |
tree | f193067905624d61e0e8a3e6cd7d2498b9bf1873 /cpp/src/Ice/RequestHandlerFactory.h | |
parent | Fixed demo dist to allow gradle build of java demos (diff) | |
download | ice-d8da15a2d803da81b76568d0c8f620f8ed26d0fa.tar.bz2 ice-d8da15a2d803da81b76568d0c8f620f8ed26d0fa.tar.xz ice-d8da15a2d803da81b76568d0c8f620f8ed26d0fa.zip |
Fixed ICE-3490: guarantee invocation serialization for proxies which are equal
Diffstat (limited to 'cpp/src/Ice/RequestHandlerFactory.h')
-rw-r--r-- | cpp/src/Ice/RequestHandlerFactory.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/cpp/src/Ice/RequestHandlerFactory.h b/cpp/src/Ice/RequestHandlerFactory.h new file mode 100644 index 00000000000..b7a0b5d7cc0 --- /dev/null +++ b/cpp/src/Ice/RequestHandlerFactory.h @@ -0,0 +1,41 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_REQUEST_HANDLER_FACTORY_H +#define ICE_REQUEST_HANDLER_FACTORY_H + +#include <IceUtil/Shared.h> +#include <IceUtil/Mutex.h> + +#include <Ice/RequestHandlerF.h> +#include <Ice/ProxyF.h> +#include <Ice/ReferenceF.h> +#include <Ice/InstanceF.h> + +namespace IceInternal +{ + +class RequestHandlerFactory : public IceUtil::Shared, private IceUtil::Mutex +{ +public: + + RequestHandlerFactory(const InstancePtr&); + + RequestHandlerPtr getRequestHandler(const ReferencePtr&, const Ice::ObjectPrx&); + void removeRequestHandler(const ReferencePtr&, const RequestHandlerPtr&); + +private: + + const InstancePtr _instance; + std::map<ReferencePtr, RequestHandlerPtr> _handlers; +}; + +} + +#endif |