diff options
Diffstat (limited to 'java/src/IceInternal/ObserverHelper.java')
-rw-r--r-- | java/src/IceInternal/ObserverHelper.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/java/src/IceInternal/ObserverHelper.java b/java/src/IceInternal/ObserverHelper.java new file mode 100644 index 00000000000..754a57098bf --- /dev/null +++ b/java/src/IceInternal/ObserverHelper.java @@ -0,0 +1,65 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 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. +// +// ********************************************************************** + +package IceInternal; + +import Ice.Instrumentation.CommunicatorObserver; +import Ice.Instrumentation.InvocationObserver; + +public final class ObserverHelper +{ + static public InvocationObserver + get(Instance instance, String op) + { + CommunicatorObserver obsv = instance.initializationData().observer; + if(obsv != null) + { + InvocationObserver observer = obsv.getInvocationObserver(null, op, _emptyContext); + if(observer != null) + { + observer.attach(); + } + return observer; + } + return null; + } + + static public InvocationObserver + get(Ice.ObjectPrx proxy, String op) + { + return get(proxy, op, null); + } + + static public InvocationObserver + get(Ice.ObjectPrx proxy, String op, java.util.Map<String, String> context) + { + CommunicatorObserver obsv = + ((Ice.ObjectPrxHelperBase)proxy).__reference().getInstance().initializationData().observer; + if(obsv != null) + { + InvocationObserver observer; + if(context == null) + { + observer = obsv.getInvocationObserver(proxy, op, _emptyContext); + } + else + { + observer = obsv.getInvocationObserver(proxy, op, context); + } + if(observer != null) + { + observer.attach(); + } + return observer; + } + return null; + } + + private static final java.util.Map<String, String> _emptyContext = new java.util.HashMap<String, String>(); +} |