7#include "AIDASLCREF_SERVER.h"
18 printf(
"AIDA-PVA Reference Provider\n");
39 unsigned char x = 0x1;
40 ascanf(env, &arguments,
"%ob",
"x", &x);
66 unsigned char x = 0x0;
67 ascanf(env, &arguments,
"%oc",
"x", &x);
93 ascanf(env, &arguments,
"ohd",
"x", &x);
119 ascanf(env, &arguments,
"%od",
"x", &x);
145 ascanf(env, &arguments,
"%old",
"x", &x);
171 ascanf(env, &arguments,
"%of",
"x", &x);
197 ascanf(env, &arguments,
"%olf",
"x", &x);
221 char* data =
"eight";
225 ascanf(env, &arguments,
"%os",
"x", &x);
231 sprintf(item,
"%s", data);
233 sprintf(item,
"%s: %s", data, x);
257 booleanArray.
count = 1;
259 ((
unsigned char*)(booleanArray.
items))[0] = 1;
263 unsigned int count = 0;
264 if (!
ascanf(env, &arguments,
"%oba",
"x", &x, &count) && count) {
265 free(booleanArray.
items);
266 booleanArray.
count = (int)count;
267 booleanArray.
items = x;
292 ((
unsigned char*)(byteArray.
items))[0] = 12;
296 unsigned int count = 0;
297 if (!
ascanf(env, &arguments,
"%oca",
"x", &x, &count) && count) {
298 free(byteArray.
items);
299 byteArray.
count = (int)count;
301 for (
int i = 0; i < count; i++) {
326 shortArray.
count = 1;
328 ((
short*)(shortArray.
items))[0] = 13;
332 unsigned int count = 0;
333 if (!
ascanf(env, &arguments,
"%ohda",
"x", &x, &count) && count) {
334 free(shortArray.
items);
335 shortArray.
count = (int)count;
336 shortArray.
items = x;
337 for (
int i = 0; i < count; i++) {
362 integerArray.
count = 1;
364 ((
int*)(integerArray.
items))[0] = 14;
368 unsigned int count = 0;
369 if (!
ascanf(env, &arguments,
"%oda",
"x", &x, &count) && count) {
370 free(integerArray.
items);
371 integerArray.
count = (int)count;
372 integerArray.
items = x;
373 for (
int i = 0; i < count; i++) {
400 ((
long*)(longArray.
items))[0] = 15l;
404 unsigned int count = 0;
405 if (!
ascanf(env, &arguments,
"%olda",
"x", &x, &count) && count) {
406 free(longArray.
items);
407 longArray.
count = (int)count;
409 for (
int i = 0; i < count; i++) {
434 floatArray.
count = 1;
436 ((
float*)(floatArray.
items))[0] = 16.6f;
440 unsigned int count = 0;
441 if (!
ascanf(env, &arguments,
"%ofa",
"x", &x, &count) && count) {
442 free(floatArray.
items);
443 floatArray.
count = (int)count;
444 floatArray.
items = x;
445 for (
int i = 0; i < count; i++) {
470 doubleArray.
count = 1;
472 ((
double*)(doubleArray.
items))[0] = 17.7;
476 unsigned int count = 0;
477 if (!
ascanf(env, &arguments,
"%olfa",
"x", &x, &count) && count) {
478 free(doubleArray.
items);
479 doubleArray.
count = (int)count;
480 doubleArray.
items = x;
481 for (
int i = 0; i < count; i++) {
506 stringArray.
count = 1;
512 unsigned int count = 0;
513 if (!
ascanf(env, &arguments,
"%osa",
"x", &x, &count) && count) {
514 free(stringArray.
items);
515 stringArray.
count = (int)count;
516 stringArray.
items = x;
540 unsigned char xBoolean = 0x1, xByte = 0;
545 double xDouble = 1.0;
546 char* xString = NULL;
547 if (
ascanf(env, &arguments,
"%ob %oc %ohd %od %old %of %olf %os",
548 "x.boolean", &xBoolean,
551 "x.integer", &xInteger,
554 "x.double", &xDouble,
555 "x.string", &xString)) {
606 avscanf(env, &arguments, &value,
"%b",
"value", &v);
Array aidaRequestIntegerArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a integer array.
Table aidaSetValueWithResponse(JNIEnv *env, const char *uri, Arguments arguments, Value value)
Set a value and return a table as a response.
void aidaSetValue(JNIEnv *env, const char *uri, Arguments arguments, Value value)
Set a value.
char * aidaRequestString(JNIEnv *env, const char *uri, Arguments arguments)
Get a string.
float aidaRequestFloat(JNIEnv *env, const char *uri, Arguments arguments)
Get a float.
Table aidaRequestTable(JNIEnv *env, const char *uri, Arguments arguments)
Get a table of data.
Array aidaRequestLongArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a long array.
Array aidaRequestDoubleArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a double array.
StringArray aidaRequestStringArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a string array.
int aidaRequestInteger(JNIEnv *env, const char *uri, Arguments arguments)
Get a integer.
Array aidaRequestShortArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a short array.
Array aidaRequestBooleanArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a boolean array.
Array aidaRequestFloatArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a float array.
double aidaRequestDouble(JNIEnv *env, const char *uri, Arguments arguments)
Get a double.
void aidaServiceInit(JNIEnv *env)
Initialise the service.
Array aidaRequestByteArray(JNIEnv *env, const char *uri, Arguments arguments)
Get a byte array.
short aidaRequestShort(JNIEnv *env, const char *uri, Arguments arguments)
Get a short.
char aidaRequestByte(JNIEnv *env, const char *uri, Arguments arguments)
Get a byte.
int aidaRequestBoolean(JNIEnv *env, const char *uri, Arguments arguments)
Get a boolean.
long aidaRequestLong(JNIEnv *env, const char *uri, Arguments arguments)
Get a long.
The Header File for the AIDA-PVA Module functions.
#define VERSION(_version)
Use this macro to define the version of the provider.
#define RETURN_NULL_TABLE
Return an empty table response.
#define UNSUPPORTED_CHANNEL_EXCEPTION
Use this string to signal Unsupported Channel Exceptions in aidaThrow()
#define ON_EXCEPTION_RETURN_(_r)
Check to see if an exception has been raised, and return the given return value.
#define ALLOCATE_STRING_AND_ON_ERROR_RETURN_(_env, _var, _string, _purpose, _r)
Allocate memory for a string and copy the given string into this allocated space.
#define ALLOCATE_MEMORY_AND_ON_ERROR_RETURN_(_env, _var, _size, _purpose, _r)
Allocate memory and on error return the given value.
int endsWith(const char *str, char *suffix)
Check if a string str, ends with another string suffix.
void aidaThrowNonOsException(JNIEnv *env, char *exception, const char *message)
To log any non-OS exceptions and throw back to java.
void tableAddSingleRowFloatColumn(JNIEnv *env, Table *table, float data, bool ieeeFloat)
Add a float column to a Table with only one row.
int ascanf(JNIEnv *env, Arguments *arguments, const char *formatString,...)
ascanf(), avscanf()
void tableAddSingleRowLongColumn(JNIEnv *env, Table *table, long data)
Add a long column to a Table with only one row.
Table tableCreate(JNIEnv *env, int rows, int columns)
Make a Table for return to client.
void tableAddSingleRowIntegerColumn(JNIEnv *env, Table *table, int data)
Add a integer column to a Table with only one row.
void tableAddSingleRowShortColumn(JNIEnv *env, Table *table, short data)
Add a short column to a Table with only one row.
void tableAddSingleRowByteColumn(JNIEnv *env, Table *table, unsigned char data)
Add a byte column to a Table with only one row.
void tableAddSingleRowDoubleColumn(JNIEnv *env, Table *table, double data, bool ieeeDouble)
Add a double column to a Table with only one row.
void tableAddSingleRowBooleanColumn(JNIEnv *env, Table *table, unsigned char data)
Add a boolean column to a Table with only one row.
int avscanf(JNIEnv *env, Arguments *arguments, Value *value, const char *formatString,...)
ascanf(), avscanf()
void tableAddSingleRowStringColumn(JNIEnv *env, Table *table, char *data)
Add a string column to a Table with only one row.
An Arguments structure stores all of the arguments passed from the request to the Native Channel Prov...
void * items
The items in this array.
int count
The number of items in this array.
int count
The number of items in this array.
char ** items
The items in this array - pointers to the strings you allocate.
This special type represents a Value.