JNIEXPORT void SIGAR_JNI(ptql_SigarProcessQuery_create)
(JNIEnv *env, jobject obj, jstring jptql)
{
	int status;
    jboolean is_copy;    
    sigar_ptql_query_t *query;
    sigar_ptql_error_t error;
#ifdef WIN32	
    LPCTSTR ptql;
    char ptql_ch[3000];   
    ptql = (LPCTSTR)JENV->GetStringChars(env, jptql, &is_copy);       
		 
    SIGAR_W2A((LPCWSTR)ptql, ptql_ch, sizeof(ptql_ch));  
    status = sigar_ptql_query_create(&query, ptql_ch, &error);
    if (is_copy) {
        JENV->ReleaseStringChars(env, jptql,  (const jchar *)ptql);
    }
#else
    const char *ptql;
	ptql = JENV->GetStringUTFChars(env, jptql, &is_copy);
    status = sigar_ptql_query_create(&query, (char *)ptql, &error);
    if (is_copy) {
        JENV->ReleaseStringUTFChars(env, jptql, ptql);
    }
#endif
    if (status != SIGAR_OK) {
        sigar_throw_ptql_malformed(env, error.message);
    }
    else {
        sigar_set_pointer(env, obj, query);
    }
}
Example #2
0
JNIEXPORT void SIGAR_JNI(ptql_SigarProcessQuery_create)
(JNIEnv *env, jobject obj, jstring jptql)
{
    int status;
    jboolean is_copy;
    const char *ptql;
    sigar_ptql_query_t *query;
    sigar_ptql_error_t error;

    ptql = JENV->GetStringUTFChars(env, jptql, &is_copy);
    status = sigar_ptql_query_create(&query, (char *)ptql, &error);
    if (is_copy) {
        JENV->ReleaseStringUTFChars(env, jptql, ptql);
    }

    if (status != SIGAR_OK) {
        sigar_throw_ptql_malformed(env, error.message);
    }
    else {
        sigar_set_pointer(env, obj, query);
    }
}