From 720d47eb7d17acabd427d626bfa84f2262b3b678 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 6 Jan 2012 21:10:51 +0000 Subject: [PATCH] Added method get_real_time to get real system time, via Java, from C. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4335 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/include/prism.h | 1 + prism/src/prism/prism.cc | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/prism/include/prism.h b/prism/include/prism.h index 17a38b22..dc336f70 100644 --- a/prism/include/prism.h +++ b/prism/include/prism.h @@ -43,6 +43,7 @@ typedef struct FoxGlynnWeights } FoxGlynnWeights; // Function prototypes +EXPORT long get_real_time(JNIEnv *env); EXPORT void get_string_array_from_java(JNIEnv *env, jobject strings_list, jstring *&strings_jstrings, const char **&strings, int &size); EXPORT void release_string_array_from_java(JNIEnv *env, jstring *strings_jstrings, const char **strings, jint size); EXPORT FoxGlynnWeights fox_glynn(double q_tmax, double underflow, double overflow, double accuracy); diff --git a/prism/src/prism/prism.cc b/prism/src/prism/prism.cc index ffb0afc9..8ae72592 100644 --- a/prism/src/prism/prism.cc +++ b/prism/src/prism/prism.cc @@ -31,6 +31,25 @@ #include #include #include +#include "jnipointer.h" + +//------------------------------------------------------------------------------ + +// Get the current time in milliseconds (via Java). +// Returns -1 in case of error obtaining the time. + +long get_real_time(JNIEnv *env) +{ + jlong ret = 0; + if (env) { + jclass cl = env->FindClass("java/lang/System"); + jmethodID me = env->GetStaticMethodID(cl, "currentTimeMillis", "()J"); + ret = env->CallLongMethod(cl, me); + } else { + ret = -1; + } + return ret; +} //------------------------------------------------------------------------------