version 1.2, 2004/06/25 15:23:31
|
version 1.12, 2005/05/25 19:03:19
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%2005//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L. P., IBM Corp., The Open Group, Tivoli Systems. |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; | // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// IBM Corp.; EMC Corporation, The Open Group. | // IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; VERITAS Software Corporation; The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/String.h> | #include <Pegasus/Common/String.h> |
#include <Pegasus/Common/System.h> | #include <Pegasus/Common/System.h> |
|
#include <Pegasus/Common/HashTable.h> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
static int trace; | static int trace; |
static JavaVM *jvm; | static JavaVM *jvm; |
static JvmVector jv; | static JvmVector jv; |
|
|
JMPIjvm(); | JMPIjvm(); |
~JMPIjvm(); | ~JMPIjvm(); |
| |
static JNIEnv* attachThread(JvmVector **jvp); | static JNIEnv* attachThread(JvmVector **jvp); |
static void detachThread(); | static void detachThread(); |
static jobject getProvider(JNIEnv *env, const char *cn, jclass *cls) ; | static jobject getProvider(JNIEnv *env, const char *cn, jclass *cls) ; |
static jobject getProvider(JNIEnv *env, String jar, String cls, const char *cn, jclass *cls) ; |
static jobject getProvider(JNIEnv *env, String jar, String cln, const char *cn, jclass *cls) ; |
static void checkException(JNIEnv *env); | static void checkException(JNIEnv *env); |
static jstring NewPlatformString(JNIEnv *env,char *s); | static jstring NewPlatformString(JNIEnv *env,char *s); |
static jobjectArray NewPlatformStringArray(JNIEnv *env,char **strv, int strc); | static jobjectArray NewPlatformStringArray(JNIEnv *env,char **strv, int strc); |
static int cacheIDs(JNIEnv *env); | static int cacheIDs(JNIEnv *env); |
|
static int destroyJVM(); |
|
|
private: | private: |
static jclass getGlobalClassRef(JNIEnv *env, const char* name); | static jclass getGlobalClassRef(JNIEnv *env, const char* name); |
static int initJVM(); | static int initJVM(); |
|
|
|
typedef HashTable<String,jclass,EqualFunc<String>,HashFunc<String> > ClassTable; |
|
typedef HashTable<String,jobject,EqualFunc<String>,HashFunc<String> > ObjectTable; |
|
|
|
static ClassTable _classTable; |
|
static ObjectTable _objectTable; |
}; | }; |
| |
class _nameSpace { | class _nameSpace { |
|
|
}; | }; |
| |
static int pTypeToJType[]= | static int pTypeToJType[]= |
/* CIMTYPE_BOOLEAN, public static final int BOOLEAN = 10; |
/* CIMTYPE_BOOLEAN, public static final int BOOLEAN = 10; 0 |
CIMTYPE_UINT8, public static final int UINT8 = 1; |
CIMTYPE_UINT8, public static final int UINT8 = 1; 1 |
CIMTYPE_SINT8, public static final int SINT8 = 2; |
CIMTYPE_SINT8, public static final int SINT8 = 2; 2 |
CIMTYPE_UINT16, public static final int UINT16 = 3; |
CIMTYPE_UINT16, public static final int UINT16 = 3; 3 |
CIMTYPE_SINT16, public static final int SINT16 = 4; |
CIMTYPE_SINT16, public static final int SINT16 = 4; 4 |
CIMTYPE_UINT32, public static final int UINT32 = 5; |
CIMTYPE_UINT32, public static final int UINT32 = 5; 5 |
CIMTYPE_SINT32, public static final int SINT32 = 6; |
CIMTYPE_SINT32, public static final int SINT32 = 6; 6 |
CIMTYPE_UINT64, public static final int UINT64 = 7; |
CIMTYPE_UINT64, public static final int UINT64 = 7; 7 |
CIMTYPE_SINT64, public static final int SINT64 = 8; |
CIMTYPE_SINT64, public static final int SINT64 = 8; 8 |
CIMTYPE_REAL32, public static final int REAL32 = 11; |
CIMTYPE_REAL32, public static final int REAL32 = 11; 9 |
CIMTYPE_REAL64, public static final int REAL64 = 12; |
CIMTYPE_REAL64, public static final int REAL64 = 12; 10 |
CIMTYPE_CHAR16, public static final int CHAR16 = 14; |
CIMTYPE_CHAR16, public static final int CHAR16 = 14; 11 |
CIMTYPE_STRING, public static final int STRING = 9; |
CIMTYPE_STRING, public static final int STRING = 9; 12 |
CIMTYPE_DATETIME, public static final int DATETIME = 13; |
CIMTYPE_DATETIME, public static final int DATETIME = 13; 12 |
CIMTYPE_REFERENCE public static final int REFERENCE = 0x32+1; |
CIMTYPE_REFERENCE public static final int REFERENCE = 0x32+1; 14 |
|
CIMTYPE_OBJECT public static final int OBJECT = 15; 15 |
*/ | */ |
{10,1,2,3,4,5,6,7,8,11,12,14,9,13,0x32+1}; |
{10, 1, 2, 3, 4, 5, 6, 7, 8,11,12,14, 9,13,0x32+1, 15}; |
|
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
|
|
static int jTypeToPType[]= |
|
{0, 1, 2, 3, 4, 5, 6, 7, 8,12, 0, 9,10,12,14,15}; |
|
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13,??,15 |
| |
static char *jTypeToChars[]= { | static char *jTypeToChars[]= { |
NULL, | NULL, |
|
|
"real32", | "real32", |
"real64", | "real64", |
"datetime", | "datetime", |
"char16" }; |
"char16", |
|
"object" }; |
| |
| |
class _dataType { | class _dataType { |
|
|
#define CIMValueClassRef classRefs[19] | #define CIMValueClassRef classRefs[19] |
#define CIMObjectClassRef classRefs[20] | #define CIMObjectClassRef classRefs[20] |
#define ThrowableClassRef classRefs[21] | #define ThrowableClassRef classRefs[21] |
|
#define StringClassRef classRefs[22] |
|
#define SelectExpClassRef classRefs[25] |
|
#define CIMArgumentClassRef classRefs[29] |
| |
#define VectorNew instMethodIDs[0] | #define VectorNew instMethodIDs[0] |
#define VectorAddElement instMethodIDs[15] | #define VectorAddElement instMethodIDs[15] |
|
|
#define VectorRemoveElementAt instMethodIDs[31] | #define VectorRemoveElementAt instMethodIDs[31] |
#define CIMPropertyNewI instMethodIDs[14] | #define CIMPropertyNewI instMethodIDs[14] |
#define CIMValueCInst instMethodIDs[32] | #define CIMValueCInst instMethodIDs[32] |
|
#define SelectExpNewI instMethodIDs[35] |
|
#define ArgumentCInst instMethodIDs[39] |
|
#define CIMArgumentNewI instMethodIDs[40] |
|
#define CIMValueNewI instMethodIDs[47] |
| |
//extern "C" JNIEnv* attachThread(JvmVector**); | //extern "C" JNIEnv* attachThread(JvmVector**); |
//extern "C" void detachThread(); | //extern "C" void detachThread(); |
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif | #endif |
|
|