summaryrefslogtreecommitdiff
path: root/java/src/Ice/ThreadHookPlugin.java
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2009-09-28 11:05:44 -0230
committerDwayne Boone <dwayne@zeroc.com>2009-09-28 11:05:44 -0230
commit7d20430028f05cc26c412465176a75ce4ea5af9e (patch)
tree593695acf366f7e3a7081d15af8f474683ce4af7 /java/src/Ice/ThreadHookPlugin.java
parentRemoved unused __checkTwoway(const char*) from Proxy (diff)
downloadice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.bz2
ice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.xz
ice-7d20430028f05cc26c412465176a75ce4ea5af9e.zip
Bug 3231 - alternative storage for IceGrid and IceStorm
Diffstat (limited to 'java/src/Ice/ThreadHookPlugin.java')
-rw-r--r--java/src/Ice/ThreadHookPlugin.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/java/src/Ice/ThreadHookPlugin.java b/java/src/Ice/ThreadHookPlugin.java
new file mode 100644
index 00000000000..93b0916e027
--- /dev/null
+++ b/java/src/Ice/ThreadHookPlugin.java
@@ -0,0 +1,62 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2009 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 Ice;
+
+/**
+ * Class to support thread notification hooks. Applications using thread
+ * notifications hooks instantiate a <code>ThreadHookPlugin</code> with
+ * a thread notification hook and return the instance from their
+ * {@link PluginFactory} implementation.
+ *
+ * @see PluginFactory
+ * @see Plugin
+ **/
+public class ThreadHookPlugin implements Ice.Plugin
+{
+ /**
+ * Installs a thread notification hook for a communicator.
+ *
+ * @param communicator The communicator using the thread notification hook.
+ * @param threadHook The thread notification hook for the communicator.
+ **/
+ public
+ ThreadHookPlugin(Communicator communicator, ThreadNotification threadHook)
+ {
+ if(communicator == null)
+ {
+ PluginInitializationException ex = new PluginInitializationException();
+ ex.reason = "Communicator cannot be null";
+ throw ex;
+ }
+
+ IceInternal.Instance instance = IceInternal.Util.getInstance(communicator);
+ instance.setThreadHook(threadHook);
+ }
+
+ /**
+ * Called by the Ice run time during communicator initialization. The derived class
+ * can override this method to perform any initialization that might be required
+ * by a custom thread notification hook.
+ **/
+ public void
+ initialize()
+ {
+ }
+
+ /**
+ * Called by the Ice run time when the communicator is destroyed. The derived class
+ * can override this method to perform any finalization that might be required
+ * by a custom thread notification hook.
+ **/
+ public void
+ destroy()
+ {
+ }
+}