Also added Javadoc comments to the .java file.
Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
#define TRACEPOINT_CREATE_PROBES
#include "lttng_ust_java.h"
+JNIEXPORT void JNICALL Java_org_lttng_ust_LTTngUst_tracepointInt(JNIEnv *env,
+ jobject jobj,
+ jstring ev_name,
+ jint payload)
+{
+ jboolean iscopy;
+ const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name, &iscopy);
+
+ tracepoint(lttng_ust_java, int_event, ev_name_cstr, payload);
+
+ (*env)->ReleaseStringUTFChars(env, ev_name, ev_name_cstr);
+}
+
+JNIEXPORT void JNICALL Java_org_lttng_ust_LTTngUst_tracepointLong(JNIEnv *env,
+ jobject jobj,
+ jstring ev_name,
+ jlong payload)
+{
+ jboolean iscopy;
+ const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name, &iscopy);
+
+ tracepoint(lttng_ust_java, long_event, ev_name_cstr, payload);
+
+ (*env)->ReleaseStringUTFChars(env, ev_name, ev_name_cstr);
+}
+
JNIEXPORT void JNICALL Java_org_lttng_ust_LTTngUst_tracepointString(JNIEnv *env,
jobject jobj,
jstring ev_name,
- jstring args)
+ jstring payload)
{
jboolean iscopy;
- const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name,
- &iscopy);
- const char *args_cstr = (*env)->GetStringUTFChars(env, args, &iscopy);
+ const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name, &iscopy);
+ const char *payload_cstr = (*env)->GetStringUTFChars(env, payload, &iscopy);
- tracepoint(lttng_ust_java, string, ev_name_cstr, args_cstr);
+ tracepoint(lttng_ust_java, string_event, ev_name_cstr, payload_cstr);
(*env)->ReleaseStringUTFChars(env, ev_name, ev_name_cstr);
- (*env)->ReleaseStringUTFChars(env, args, args_cstr);
+ (*env)->ReleaseStringUTFChars(env, payload, payload_cstr);
}
+
-/*
+/**
* Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2012 Alexandre Montplaisir <alexandre.montplaisir@polymtl.ca>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
package org.lttng.ust;
-public class LTTngUst {
- public static native void tracepointString(String name, String arg);
- static {
- System.loadLibrary("lttng-ust-java");
- }
+/**
+ * This class implements the the Java side of the LTTng-UST Java interface.
+ *
+ * First, make sure you have installed "liblttng-ust-java.so" where the linker
+ * can find it. You can then call LTTngUst.init() from your Java program to
+ * connect the methods exposed here to the native library.
+ *
+ * Because of limitations in the probe declaration, all trace events generated
+ * by this library will have "lttng_ust_java" for domain, and "<type>_event" for
+ * event name in the CTF trace files. The "name" parameter will instead appear
+ * as the first element of the event's payload.
+ *
+ * @author Mathieu Desnoyers
+ * @author Alexandre Montplaisir
+ *
+ */
+public abstract class LTTngUst {
+
+ /**
+ * Initialize the UST tracer. This should always be called first, before any
+ * tracepoint* method.
+ */
+ public static void init() {
+ System.loadLibrary("lttng-ust-java"); //$NON-NLS-1$
+ }
+
+ /**
+ * Insert a tracepoint with a payload of type Integer.
+ *
+ * @param name
+ * The name assigned to this event. For best performance, this
+ * should be a statically-defined String, or a literal.
+ * @param payload
+ * The int payload
+ */
+ public static native void tracepointInt(String name, int payload);
+
+ /**
+ * Insert a tracepoint with a payload of type Long
+ *
+ * @param name
+ * The name assigned to this event. For best performance, this
+ * should be a statically-defined String, or a literal.
+ * @param payload
+ * The long payload
+ */
+ public static native void tracepointLong(String name, long payload);
+
+ /**
+ * Insert a tracepoint with a String payload.
+ *
+ * @param name
+ * The name assigned to this event. For best performance, this
+ * should be a statically-defined String, or a literal.
+ * @param payload
+ * The String payload
+ */
+ public static native void tracepointString(String name, String payload);
+
}
#include <lttng/tracepoint.h>
-TRACEPOINT_EVENT(lttng_ust_java, string,
- TP_ARGS(const char *, name, const char *, args),
+TRACEPOINT_EVENT(lttng_ust_java, int_event,
+ TP_ARGS(const char *, name, int, payload),
TP_FIELDS(
ctf_string(name, name)
- ctf_string(args, args)
+ ctf_integer(int, int_payload, payload)
+ )
+)
+
+TRACEPOINT_EVENT(lttng_ust_java, long_event,
+ TP_ARGS(const char *, name, long, payload),
+ TP_FIELDS(
+ ctf_string(name, name)
+ ctf_integer(long, long_payload, payload)
+ )
+)
+
+TRACEPOINT_EVENT(lttng_ust_java, string_event,
+ TP_ARGS(const char *, name, const char *, payload),
+ TP_FIELDS(
+ ctf_string(name, name)
+ ctf_string(string_payload, payload)
)
)