edburns%acm.org f3221c6814 Import Waterfall under the directory pluggable-jvm.
git-svn-id: svn://10.0.0.236/trunk@94499 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-10 18:12:45 +00:00

73 lines
2.3 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is The Waterfall Java Plugin Module
*
* The Initial Developer of the Original Code is Sun Microsystems Inc
* Portions created by Sun Microsystems Inc are Copyright (C) 2001
* All Rights Reserved.
*
* $Id: nsPluggableJVM.h,v 1.1.1.1 2001-05-10 18:12:43 edburns%acm.org Exp $
*
*
* Contributor(s):
*
* Nikolay N. Igotti <inn@sparc.spb.su>
*/
#ifndef __nsPluggableJVM_h__
#define __nsPluggableJVM_h__
#include "nsIPluggableJVM.h"
#include "nsIBrowserJavaSupport.h"
#include "nsCOMPtr.h"
#include "nspr.h"
// Waterfall interface
#include "jvmp.h"
#define LIBJVMP "jvmp"
#define LIBEXT "wf_moz6"
class nsPluggableJVM : public nsIPluggableJVM {
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIPLUGGABLEJVM
nsPluggableJVM();
virtual ~nsPluggableJVM();
NS_IMETHOD GetWFCtx(JVMP_RuntimeContext* *rt_ctx,
JVMP_CallingContext* *c_ctx);
NS_IMETHOD DeleteGlobalRef(jobject jobj);
NS_IMETHOD DeleteLocalRef(jobject jobj);
protected:
// pointer to WF plugin context
JVMP_RuntimeContext* m_jvmp_context;
// Waterfall DLL handle
PRLibrary* m_dll;
// this field contains JVMP_CallingContext only for main NS thread
// other threads should use JVMP_GetCallingContext()
JVMP_CallingContext* m_ctx;
// descriptor provided by Waterfall library for proper Mozilla extension
jint m_extID;
// browser Java support field
nsCOMPtr<nsIBrowserJavaSupport> m_support;
// just load Waterfall and set up m_jvmp_context correctly
NS_METHOD loadPluginDLL(const char* plugin_home);
// start up JVM and set up m_ctx correctly - call from main thread
NS_METHOD initJVM(JVMP_CallingContext* *penv,
JavaVMInitArgs* vm_args);
};
#endif /* __nsPluggableJVM_h__ */