unicode-ize
This commit is contained in:
parent
9dae5e1ab1
commit
cd49b7281f
|
@ -17,6 +17,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
#define UNICODE
|
||||||
|
#define _UNICODE
|
||||||
|
|
||||||
#include <pdh.h>
|
#include <pdh.h>
|
||||||
#include <pdhmsg.h>
|
#include <pdhmsg.h>
|
||||||
|
|
||||||
|
@ -71,10 +74,10 @@ JNIEXPORT void SIGAR_JNI(win32_Pdh_pdhConnectMachine)
|
||||||
(JNIEnv *env, jobject cur, jstring jhost)
|
(JNIEnv *env, jobject cur, jstring jhost)
|
||||||
{
|
{
|
||||||
PDH_STATUS status;
|
PDH_STATUS status;
|
||||||
LPCTSTR host = JENV->GetStringUTFChars(env, jhost, NULL);
|
LPCTSTR host = JENV->GetStringChars(env, jhost, NULL);
|
||||||
|
|
||||||
status = PdhConnectMachine(host);
|
status = PdhConnectMachine(host);
|
||||||
JENV->ReleaseStringUTFChars(env, jhost, host);
|
JENV->ReleaseStringChars(env, jhost, host);
|
||||||
|
|
||||||
if (status != ERROR_SUCCESS) {
|
if (status != ERROR_SUCCESS) {
|
||||||
win32_throw_exception(env, get_error_message(status));
|
win32_throw_exception(env, get_error_message(status));
|
||||||
|
@ -116,7 +119,7 @@ JNIEXPORT jlong SIGAR_JNI(win32_Pdh_pdhAddCounter)
|
||||||
HCOUNTER h_counter;
|
HCOUNTER h_counter;
|
||||||
HQUERY h_query = (HQUERY)query;
|
HQUERY h_query = (HQUERY)query;
|
||||||
PDH_STATUS status;
|
PDH_STATUS status;
|
||||||
LPCTSTR counter_path = JENV->GetStringUTFChars(env, cp, NULL);
|
LPCTSTR counter_path = JENV->GetStringChars(env, cp, NULL);
|
||||||
|
|
||||||
/* Add the counter that created the data in the log file. */
|
/* Add the counter that created the data in the log file. */
|
||||||
status = PdhAddCounter(h_query, counter_path, 0, &h_counter);
|
status = PdhAddCounter(h_query, counter_path, 0, &h_counter);
|
||||||
|
@ -125,13 +128,13 @@ JNIEXPORT jlong SIGAR_JNI(win32_Pdh_pdhAddCounter)
|
||||||
/* if given counter does not exist,
|
/* if given counter does not exist,
|
||||||
* try the same name w/ "/sec" appended
|
* try the same name w/ "/sec" appended
|
||||||
*/
|
*/
|
||||||
char counter_sec[MAX_PATH];
|
TCHAR counter_sec[MAX_PATH];
|
||||||
strcpy(counter_sec, counter_path);
|
lstrcpy(counter_sec, counter_path);
|
||||||
strcat(counter_sec, "/sec");
|
lstrcat(counter_sec, _T("/sec"));
|
||||||
status = PdhAddCounter(h_query, counter_sec, 0, &h_counter);
|
status = PdhAddCounter(h_query, counter_sec, 0, &h_counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
JENV->ReleaseStringUTFChars(env, cp, counter_path);
|
JENV->ReleaseStringChars(env, cp, counter_path);
|
||||||
|
|
||||||
if (status != ERROR_SUCCESS) {
|
if (status != ERROR_SUCCESS) {
|
||||||
win32_throw_exception(env, get_error_message(status));
|
win32_throw_exception(env, get_error_message(status));
|
||||||
|
@ -214,7 +217,7 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetInstances)
|
||||||
(LPTSTR)malloc ((instance_list_size * sizeof (TCHAR)));
|
(LPTSTR)malloc ((instance_list_size * sizeof (TCHAR)));
|
||||||
LPTSTR cur_object = NULL;
|
LPTSTR cur_object = NULL;
|
||||||
LPCTSTR counter_path =
|
LPCTSTR counter_path =
|
||||||
(LPCTSTR)JENV->GetStringUTFChars(env, cp, 0);
|
JENV->GetStringChars(env, cp, 0);
|
||||||
jobjectArray array = NULL;
|
jobjectArray array = NULL;
|
||||||
|
|
||||||
status = PdhEnumObjectItems(NULL, NULL, counter_path, NULL,
|
status = PdhEnumObjectItems(NULL, NULL, counter_path, NULL,
|
||||||
|
@ -237,7 +240,7 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetInstances)
|
||||||
PERF_DETAIL_WIZARD, FALSE);
|
PERF_DETAIL_WIZARD, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
JENV->ReleaseStringUTFChars(env, cp, counter_path);
|
JENV->ReleaseStringChars(env, cp, counter_path);
|
||||||
|
|
||||||
// Still may get PDH_ERROR_MORE data after the first reallocation,
|
// Still may get PDH_ERROR_MORE data after the first reallocation,
|
||||||
// but that is OK for just browsing the instances
|
// but that is OK for just browsing the instances
|
||||||
|
@ -256,10 +259,13 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetInstances)
|
||||||
/* Walk the return instance list, creating an array */
|
/* Walk the return instance list, creating an array */
|
||||||
for (cur_object = instance_list_buf, i = 0;
|
for (cur_object = instance_list_buf, i = 0;
|
||||||
*cur_object != 0;
|
*cur_object != 0;
|
||||||
cur_object += lstrlen(cur_object) + 1, i++)
|
i++)
|
||||||
{
|
{
|
||||||
jstring s = JENV->NewStringUTF(env, cur_object);
|
int len = lstrlen(cur_object);
|
||||||
|
jstring s =
|
||||||
|
JENV->NewString(env, (const jchar *)cur_object, len);
|
||||||
JENV->SetObjectArrayElement(env, array, i, s);
|
JENV->SetObjectArrayElement(env, array, i, s);
|
||||||
|
cur_object += len + 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (instance_list_buf != NULL)
|
if (instance_list_buf != NULL)
|
||||||
|
@ -285,7 +291,7 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetKeys)
|
||||||
LPTSTR instance_list_buf =
|
LPTSTR instance_list_buf =
|
||||||
(LPTSTR)malloc (counter_list_size * sizeof(TCHAR));
|
(LPTSTR)malloc (counter_list_size * sizeof(TCHAR));
|
||||||
LPTSTR cur_object = NULL;
|
LPTSTR cur_object = NULL;
|
||||||
LPCTSTR counter_path = JENV->GetStringUTFChars(env, cp, 0);
|
LPCTSTR counter_path = JENV->GetStringChars(env, cp, NULL);
|
||||||
jobjectArray array = NULL;
|
jobjectArray array = NULL;
|
||||||
|
|
||||||
status = PdhEnumObjectItems(NULL, NULL, counter_path,
|
status = PdhEnumObjectItems(NULL, NULL, counter_path,
|
||||||
|
@ -308,7 +314,7 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetKeys)
|
||||||
PERF_DETAIL_WIZARD, 0);
|
PERF_DETAIL_WIZARD, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
JENV->ReleaseStringUTFChars(env, cp, counter_path);
|
JENV->ReleaseStringChars(env, cp, counter_path);
|
||||||
|
|
||||||
if (status == ERROR_SUCCESS || status == PDH_MORE_DATA) {
|
if (status == ERROR_SUCCESS || status == PDH_MORE_DATA) {
|
||||||
int i, count;
|
int i, count;
|
||||||
|
@ -325,10 +331,13 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetKeys)
|
||||||
/* Walk the return instance list, creating an array */
|
/* Walk the return instance list, creating an array */
|
||||||
for (cur_object = instance_list_buf, i = 0;
|
for (cur_object = instance_list_buf, i = 0;
|
||||||
*cur_object != 0;
|
*cur_object != 0;
|
||||||
cur_object += lstrlen(cur_object) + 1, i++)
|
i++)
|
||||||
{
|
{
|
||||||
jstring s = JENV->NewStringUTF(env, cur_object);
|
int len = lstrlen(cur_object);
|
||||||
|
jstring s =
|
||||||
|
JENV->NewString(env, (const jchar *)cur_object, len);
|
||||||
JENV->SetObjectArrayElement(env, array, i, s);
|
JENV->SetObjectArrayElement(env, array, i, s);
|
||||||
|
cur_object += len + 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// An error occured
|
// An error occured
|
||||||
|
@ -389,10 +398,13 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetObjects)
|
||||||
|
|
||||||
for (cur_object = list_buf, i = 0;
|
for (cur_object = list_buf, i = 0;
|
||||||
*cur_object != 0;
|
*cur_object != 0;
|
||||||
cur_object += lstrlen(cur_object) + 1, i++)
|
i++)
|
||||||
{
|
{
|
||||||
jstring s = JENV->NewStringUTF(env, cur_object);
|
int len = lstrlen(cur_object);
|
||||||
|
jstring s =
|
||||||
|
JENV->NewString(env, (const jchar *)cur_object, len);
|
||||||
JENV->SetObjectArrayElement(env, array, i, s);
|
JENV->SetObjectArrayElement(env, array, i, s);
|
||||||
|
cur_object += len + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (list_buf != NULL)
|
if (list_buf != NULL)
|
||||||
|
@ -404,13 +416,13 @@ JNIEXPORT jobjectArray SIGAR_JNI(win32_Pdh_pdhGetObjects)
|
||||||
JNIEXPORT jstring SIGAR_JNI(win32_Pdh_pdhLookupPerfName)
|
JNIEXPORT jstring SIGAR_JNI(win32_Pdh_pdhLookupPerfName)
|
||||||
(JNIEnv *env, jclass cur, jint index)
|
(JNIEnv *env, jclass cur, jint index)
|
||||||
{
|
{
|
||||||
TCHAR path[8192];
|
TCHAR path[MAX_PATH];
|
||||||
DWORD len = sizeof(path);
|
DWORD len = sizeof(path);
|
||||||
PDH_STATUS status =
|
PDH_STATUS status =
|
||||||
PdhLookupPerfNameByIndex(NULL, index, path, &len);
|
PdhLookupPerfNameByIndex(NULL, index, path, &len);
|
||||||
|
|
||||||
if (status == ERROR_SUCCESS) {
|
if (status == ERROR_SUCCESS) {
|
||||||
return JENV->NewStringUTF(env, path);
|
return JENV->NewString(env, (const jchar *)path, len);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
win32_throw_exception(env, get_error_message(status));
|
win32_throw_exception(env, get_error_message(status));
|
||||||
|
|
Loading…
Reference in New Issue