1 /* JORTESubscriptionGetStatus.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.
30 // library header file's path
32 // enable TEST_STAGE run level
33 #include "jorte/4all.h"
34 // pregenerated header
35 #include "jorte/org_ocera_orte_Subscription.h"
36 #include "jorte/jorte_protos_api.h"
39 JNIEXPORT jobject JNICALL
40 Java_org_ocera_orte_Subscription_jORTESubscriptionGetStatus
41 (JNIEnv *env, jobject obj, jlong j_appDomain_handle)
44 jclass cls_ss = NULL; // class of SubsStatus
45 jobject obj_ss = NULL; // instance of SubsStatus
52 ORTESubsStatus *subs_stat = &ss;
55 printf(":c: ORTEPublicationGetStatus() called.. \n");
58 // create new Status instance and set its fields
61 b = ORTESubscriptionGetStatus((ORTESubscription *)j_appDomain_handle, subs_stat);
62 if (b == ORTE_BAD_HANDLE) {
63 printf(":!c: publicationGetStatus() failed! [bad pub handle] \n");
67 cls_ss = findClass(env, "org.ocera.orte.types.Status");
70 printf(":!c: cls_ss = NULL \n");
74 // call object constructor
75 mid = (*env)->GetMethodID(env, cls_ss, "<init>", "()V");
78 printf(":!c: mid = NULL \n");
83 obj_ss = (*env)->NewObject(env, cls_ss, mid);
86 printf(":!c: obj_ss = NULL \n");
90 // ///////////////////////////////////////////////
91 // setting object's fields
93 fid = (*env)->GetFieldID(env,
99 printf(":!c: fid = NULL \n");
103 (*env)->SetLongField(env,
106 (jlong)subs_stat->strict);
107 // fieldID - bestEffort
108 fid = (*env)->GetFieldID(env,
114 printf(":!c: fid = NULL \n");
118 (*env)->SetLongField(env,
121 (jlong)subs_stat->bestEffort);
123 fid = (*env)->GetFieldID(env,
129 printf(":!c: fid = NULL \n");
133 (*env)->SetLongField(env,
136 (jlong)subs_stat->issues);