rename __call__ to mf in cython.mf
[liba.git] / java / src / version.c
blob021161b251698ca04b873e1c47b0f0f0218d74af
1 #include "a.h"
2 #include "a/version.h"
3 #undef a_version_check
4 #include "liba_version.h"
6 #undef L
7 #define L Java_liba_version
8 static struct
10 jmethodID _new;
11 jfieldID ctx;
12 } L = {NULL, NULL};
14 JNIEXPORT void JNICALL Java_liba_version_clinit(JNIEnv *_env, jclass _cls)
16 jclass _nbb = (*_env)->FindClass(_env, "Ljava/nio/ByteBuffer;");
17 L._new = (*_env)->GetStaticMethodID(_env, _nbb, "allocateDirect", "(I)Ljava/nio/ByteBuffer;");
18 L.ctx = (*_env)->GetFieldID(_env, _cls, "ctx", "Ljava/nio/ByteBuffer;");
19 (*_env)->SetStaticIntField(_env, _cls, (*_env)->GetStaticFieldID(_env, _cls, "MAJOR", "I"), A_VERSION_MAJOR);
20 (*_env)->SetStaticIntField(_env, _cls, (*_env)->GetStaticFieldID(_env, _cls, "MINOR", "I"), A_VERSION_MINOR);
21 (*_env)->SetStaticIntField(_env, _cls, (*_env)->GetStaticFieldID(_env, _cls, "PATCH", "I"), A_VERSION_PATCH);
22 (*_env)->SetStaticIntField(_env, _cls, (*_env)->GetStaticFieldID(_env, _cls, "TWEAK", "I"), A_VERSION_TWEAK);
25 JNIEXPORT void JNICALL Java_liba_version_initS(JNIEnv *_env, jobject _obj, jstring _ver)
27 jobject _ctx = (*_env)->CallObjectMethod(_env, _obj, L._new, (jint)sizeof(a_version));
28 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
29 char const *ver = (*_env)->GetStringUTFChars(_env, _ver, NULL);
30 ctx->alpha[0] = '.';
31 a_version_parse(ctx, ver);
32 (*_env)->ReleaseStringUTFChars(_env, _ver, ver);
35 JNIEXPORT void JNICALL Java_liba_version_init(JNIEnv *_env, jobject _obj, jint major, jint minor, jint third, jint extra)
37 jobject _ctx = (*_env)->CallObjectMethod(_env, _obj, L._new, (jint)sizeof(a_version));
38 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
39 (*_env)->SetObjectField(_env, _obj, L.ctx, _ctx);
40 ctx->major = (unsigned int)major;
41 ctx->minor = (unsigned int)minor;
42 ctx->third = (unsigned int)third;
43 ctx->extra = (unsigned int)extra;
44 ctx->alpha[0] = '.';
47 JNIEXPORT jint JNICALL Java_liba_version_check(JNIEnv *_env, jclass _cls, jint major, jint minor, jint patch)
49 return (void)(_env), (void)(_cls), a_version_check((unsigned int)major, (unsigned int)minor, (unsigned int)patch);
52 JNIEXPORT jstring JNICALL Java_liba_version_toString(JNIEnv *_env, jobject _obj)
54 char str[48];
55 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
56 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
57 a_version_tostr(ctx, str, sizeof(str));
58 return (*_env)->NewStringUTF(_env, str);
61 JNIEXPORT jint JNICALL Java_liba_version_major__(JNIEnv *_env, jobject _obj)
63 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
64 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
65 return (jint)ctx->major;
68 JNIEXPORT jobject JNICALL Java_liba_version_major__I(JNIEnv *_env, jobject _obj, jint major)
70 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
71 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
72 ctx->major = (unsigned int)major;
73 return _obj;
76 JNIEXPORT jint JNICALL Java_liba_version_minor__(JNIEnv *_env, jobject _obj)
78 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
79 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
80 return (jint)ctx->minor;
83 JNIEXPORT jobject JNICALL Java_liba_version_minor__I(JNIEnv *_env, jobject _obj, jint minor)
85 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
86 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
87 ctx->minor = (unsigned int)minor;
88 return _obj;
91 JNIEXPORT jint JNICALL Java_liba_version_third__(JNIEnv *_env, jobject _obj)
93 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
94 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
95 return (jint)ctx->third;
98 JNIEXPORT jobject JNICALL Java_liba_version_third__I(JNIEnv *_env, jobject _obj, jint third)
100 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
101 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
102 ctx->third = (unsigned int)third;
103 return _obj;
106 JNIEXPORT jint JNICALL Java_liba_version_extra__(JNIEnv *_env, jobject _obj)
108 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
109 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
110 return (jint)ctx->extra;
113 JNIEXPORT jobject JNICALL Java_liba_version_extra__I(JNIEnv *_env, jobject _obj, jint extra)
115 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
116 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
117 ctx->extra = (unsigned int)extra;
118 return _obj;
121 JNIEXPORT jstring JNICALL Java_liba_version_alpha__(JNIEnv *_env, jobject _obj)
123 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
124 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
125 char alpha[sizeof(ctx->alpha) + 1];
126 a_version_alpha(ctx, alpha);
127 return (*_env)->NewStringUTF(_env, alpha);
130 JNIEXPORT jobject JNICALL Java_liba_version_alpha__Ljava_lang_String_2(JNIEnv *_env, jobject _obj, jstring _alpha)
132 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
133 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
134 char const *alpha = (*_env)->GetStringUTFChars(_env, _alpha, 0);
135 a_version_set_alpha(ctx, alpha);
136 (*_env)->ReleaseStringUTFChars(_env, _alpha, alpha);
137 return _obj;
140 JNIEXPORT jobject JNICALL Java_liba_version_parse(JNIEnv *_env, jobject _obj, jstring _ver)
142 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
143 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
144 char const *ver = (*_env)->GetStringUTFChars(_env, _ver, NULL);
145 a_version_parse(ctx, ver);
146 (*_env)->ReleaseStringUTFChars(_env, _ver, ver);
147 return _obj;
150 JNIEXPORT jboolean JNICALL Java_liba_version_lt(JNIEnv *_env, jobject _obj, jobject _ver)
152 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
153 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
154 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
155 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
156 return a_version_lt(ctx, rhs);
159 JNIEXPORT jboolean JNICALL Java_liba_version_gt(JNIEnv *_env, jobject _obj, jobject _ver)
161 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
162 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
163 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
164 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
165 return a_version_gt(ctx, rhs);
168 JNIEXPORT jboolean JNICALL Java_liba_version_le(JNIEnv *_env, jobject _obj, jobject _ver)
170 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
171 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
172 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
173 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
174 return a_version_le(ctx, rhs);
177 JNIEXPORT jboolean JNICALL Java_liba_version_ge(JNIEnv *_env, jobject _obj, jobject _ver)
179 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
180 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
181 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
182 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
183 return a_version_ge(ctx, rhs);
186 JNIEXPORT jboolean JNICALL Java_liba_version_eq(JNIEnv *_env, jobject _obj, jobject _ver)
188 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
189 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
190 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
191 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
192 return a_version_eq(ctx, rhs);
195 JNIEXPORT jboolean JNICALL Java_liba_version_ne(JNIEnv *_env, jobject _obj, jobject _ver)
197 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
198 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
199 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
200 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
201 return a_version_ne(ctx, rhs);
204 JNIEXPORT jint JNICALL Java_liba_version_cmp(JNIEnv *_env, jobject _obj, jobject _ver)
206 jobject _ctx = (*_env)->GetObjectField(_env, _obj, L.ctx);
207 jobject _rhs = (*_env)->GetObjectField(_env, _ver, L.ctx);
208 a_version *ctx = (a_version *)(*_env)->GetDirectBufferAddress(_env, _ctx);
209 a_version *rhs = (a_version *)(*_env)->GetDirectBufferAddress(_env, _rhs);
210 return a_version_cmp(ctx, rhs);