blob: 3fa0619d8fae398795de1f2faa9f6de33f1282a4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (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.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author Andrey Yakushev
*/
/**
* @file org_apache_harmony_lang_management_ClassLoadingMXBeanImpl.cpp
*
* This file is a part of kernel class natives VM core component.
* It contains implementation for native methods of
* org.apache.harmony.lang.management.ClassLoadingMXBeanImpl class.
*/
#define LOG_DOMAIN "management"
#include <cxxlog.h>
#include "environment.h"
#include "org_apache_harmony_lang_management_ClassLoadingMXBeanImpl.h"
/*
* Class: org_apache_harmony_lang_management_ClassLoadingMXBeanImpl
* Method: getLoadedClassCountImpl
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_getLoadedClassCountImpl
(JNIEnv * env, jobject this_bean)
{
TRACE("ClassLoadingMXBeanImpl_getLoadedClassCountImpl invocation");
return (jint)
(Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_getTotalLoadedClassCountImpl(env, this_bean)
- Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_getUnloadedClassCountImpl(env, this_bean));
}
/*
* Class: org_apache_harmony_lang_management_ClassLoadingMXBeanImpl
* Method: getTotalLoadedClassCountImpl
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_getTotalLoadedClassCountImpl
(JNIEnv * env, jobject)
{
TRACE("ClassLoadingMXBeanImpl_getTotalLoadedClassCountImpl invocation");
JavaVM * vm = NULL;
env->GetJavaVM(&vm);
return ((JavaVM_Internal*)vm)->vm_env->total_loaded_class_count;
}
/*
* Class: org_apache_harmony_lang_management_ClassLoadingMXBeanImpl
* Method: getUnloadedClassCountImpl
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_getUnloadedClassCountImpl
(JNIEnv * env, jobject)
{
TRACE("ClassLoadingMXBeanImpl_getUnloadedClassCountImpl invocation");
JavaVM * vm = NULL;
env->GetJavaVM(&vm);
return ((JavaVM_Internal*)vm)->vm_env->unloaded_class_count;
}
/*
* Class: org_apache_harmony_lang_management_ClassLoadingMXBeanImpl
* Method: isVerboseImpl
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_isVerboseImpl
(JNIEnv * env, jobject)
{
TRACE("ClassLoadingMXBeanImpl_isVerboseImpl invocation");
return log_is_info_enabled(LOG_CLASS_INFO);
}
/*
* Class: org_apache_harmony_lang_management_ClassLoadingMXBeanImpl
* Method: setVerboseImpl
* Signature: (Z)V
*/
JNIEXPORT void JNICALL Java_org_apache_harmony_lang_management_ClassLoadingMXBeanImpl_setVerboseImpl
(JNIEnv * env, jobject, jboolean value)
{
TRACE("ClassLoadingMXBeanImpl_setVerboseImpl invocation");
if (value) {
log_enable_info_category(LOG_CLASS_INFO, 0);
} else {
log_disable_info_category(LOG_CLASS_INFO, 0);
}
}