4fde3d29cfaf86d2c65d6251e0a2a2b81b4eeb97
[WebKit-https.git] / WebKit / Plugins.subproj / WebJavaPlugIn.h
1 /*
2     WebJavaPlugIn.h
3     Copyright 2004, Apple, Inc. All rights reserved.
4     
5     Public header file.
6 */
7
8 #import <JavaVM/jni.h>
9
10 /*!
11     The Java plug-in adds the following additional methods to facilitate JNI
12     access to Java VM via the plug-in.
13 */
14
15 @interface NSObject (WebJavaPlugIn)
16
17 /*!
18     @method webPlugInGetApplet
19     @discusssion This returns the jobject representing the java applet to the
20     WebPlugInContainer.  It should always be called from the AppKit Main Thread.
21     This method is only implemented by the Java plug-in.
22 */
23 - (jobject)webPlugInGetApplet;
24
25 /*!
26     @method webPlugInCallJava:withMethod:withArgs:
27     @param object The Java instance that will receive the method call.
28     @param args The arguments to use with the method invocation.
29     @discussion Calls in the Java from native code should not make direct
30     use of JNI.  Instead they should use this method to dispatch call to the 
31     Java VM.  This is required to guarantee that the correct thread will receive
32     the call.  webPlugInCallJava:withMethod:withArgs: must always be called from
33     the AppKit main thread.  This method is only implemented by the Java plug-in.
34     @result The result of the method invocation.
35 */
36 - (jvalue)webPlugInCallJava:(jobject)object withMethod:(jmethodID) withArgs:(jvalue*)args;
37
38 @end