]> rtime.felk.cvut.cz Git - orte.git/blob - orte/libjorte/JORTESubscriptionWaitForPublications.c
7852648e8d5cb0f56d785297ea025f34ba708852
[orte.git] / orte / libjorte / JORTESubscriptionWaitForPublications.c
1 /* JORTESubscriptionWaitForPublications.c */
2
3 /**
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')
8   *
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
13   * @version 0.1
14   *
15   *
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.
20   *
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.
25   *
26   */
27
28 #include <string.h>
29 #include <stdlib.h>
30 #include <inttypes.h>
31 // library header file's path
32 #include "orte.h"
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"
39
40
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)
45 {
46   int            i;
47   NtpTime        wait;
48
49   #ifdef TEST_STAGE
50     printf(":c: jORTESubscriptionWaitForPublications() called.. \n");
51   #endif
52   //
53   wait = getNtpTime(env, obj_ntpT);
54   #ifdef TEST_STAGE
55     printf(":c: check: wait: sec = %"PRId32", fract = %"PRIu32"  \n",
56            wait.seconds, wait.fraction);
57   #endif
58   // calling ORTE function
59   i = ORTESubscriptionWaitForPublications((ORTESubscription *) j_appDomain_handle,
60                                           wait,
61                                           (unsigned int) jretries,
62                                           (unsigned int) jnoPublications);
63   if (i == ORTE_BAD_HANDLE)
64   {
65     printf(":c!: wait for subscriptions failed! [bad sub handle] \n");
66     return ORTE_BAD_HANDLE;
67   }
68   if (i == ORTE_TIMEOUT)
69   {
70     printf(":c!: wait for subscriptions: timeout! [number of subscriptions exhausted] \n");
71     return ORTE_TIMEOUT;
72   }
73   if (i == ORTE_OK);
74   return ORTE_OK;
75 }