1 /* JORTESubscriptionWaitForPublications.c */
4 * This code provides conversion between JAVA a C environments.
5 * The C functions are calling here and results are send to JAVA
6 * native functions. It uses the header pregenerated by JAVA
7 * (by command 'javah -jni class_with_native_function')
9 * @author Lukas Pokorny (lukas_pokorny@centrum.cz)
10 * @author CTU FEE Prague - Department of Control Engineering (dce.felk.cvut.cz)
11 * @author Project ORTE - OCERA Real Time Ethernet (www.ocera.org)
12 * @author dedication to Kj
16 * This program is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
21 * This program is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
31 // library header file's path
33 // getNtpTime function
34 #include "jorte/jorte_protos_api.h"
35 // enable TEST_STAGE run level
36 #include "jorte/4all.h"
37 // pregenerated header
38 #include "jorte/org_ocera_orte_Subscription.h"
41 JNIEXPORT jint JNICALL
42 Java_org_ocera_orte_Subscription_jORTESubscriptionWaitForPublications
43 (JNIEnv *env, jobject obj, jlong j_appDomain_handle,
44 jobject obj_ntpT, jlong jretries, jlong jnoPublications)
50 printf(":c: jORTESubscriptionWaitForPublications() called.. \n");
53 wait = getNtpTime(env, obj_ntpT);
55 printf(":c: check: wait: sec = %"PRId32", fract = %"PRIu32" \n",
56 wait.seconds, wait.fraction);
58 // calling ORTE function
59 i = ORTESubscriptionWaitForPublications((ORTESubscription *) j_appDomain_handle,
61 (unsigned int) jretries,
62 (unsigned int) jnoPublications);
63 if (i == ORTE_BAD_HANDLE)
65 printf(":c!: wait for subscriptions failed! [bad sub handle] \n");
66 return ORTE_BAD_HANDLE;
68 if (i == ORTE_TIMEOUT)
70 printf(":c!: wait for subscriptions: timeout! [number of subscriptions exhausted] \n");