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
	
	Block a user