SWIG: Added documentation to _upm.i

Includes documentation on the macros provided as well as a top-level
description of the file.

Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Noel Eck 2018-01-22 12:01:45 -08:00
parent d06e632f3b
commit d49ab2ac95

View File

@ -1,77 +1,110 @@
/* Macro for adding JAVA run /*
usage: JAVA_ADD_INSTALLISR(javaupm_a110x) * This file provides additional non-wrapper code functionality for use
* throughout the UPM repository. This file is intended to be %imported
* from the top-level upm.i (not directly by UPM libraries).
*
* No wrapper code will be generated from importing this .i file.
*/
/* Macro for adding JAVA installISR w/runnable.
UPM_Classname - UPM class name w/namespace.
example usage: JAVA_ADD_INSTALLISR(upm::A110x)
*/ */
%define JAVA_ADD_INSTALLISR(UPM_Classname) %define JAVA_ADD_INSTALLISR(UPM_Classname)
%extend UPM_Classname { %extend UPM_Classname {
void installISR(jobject runnable) void installISR(jobject runnable)
{ {
$self->installISR(mraa_java_isr_callback, runnable); $self->installISR(mraa_java_isr_callback, runnable);
} }
} }
%enddef %enddef
/* Define GETTER in the appropiate .i file with the getter function name /* Macro for adding JAVA installISR w/runnable for a GPIO
UPM_Classname - UPM class name w/namespace.
example usage: JAVA_ADD_INSTALLISR_GPIO(upm::A110x)
Requires: Define GETTER in the appropiate .i file with the getter
function name.
*/ */
%define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname) %define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname)
%extend UPM_Classname { %extend UPM_Classname {
void installISR(int gpio, mraa::Edge level, jobject runnable) void installISR(int gpio, mraa::Edge level, jobject runnable)
{ {
// delete any existing ISR and GPIO context /* delete any existing ISR and GPIO context */
$self->uninstallISR(); $self->uninstallISR();
// create gpio context /* create gpio context */
mraa::Gpio* swg_gpioIntr = $self->GETTER; mraa::Gpio* swg_gpioIntr = $self->GETTER;
swg_gpioIntr->dir(mraa::DIR_IN); swg_gpioIntr->dir(mraa::DIR_IN);
swg_gpioIntr->isr(level, runnable); swg_gpioIntr->isr(level, runnable);
}
}
} }
%enddef %enddef
/* Define INTERRUPT in the appropiate .i file with the interrupt type /* Macro for adding JAVA installISR for GPIO interrupt w/runnable.
UPM_Classname - UPM class name w/namespace.
example usage: JAVA_ADD_INSTALLISR_INTERRUPT(upm::A110x)
Requires: Define INTERRUPT in the appropiate .i file with the
interrupt type.
*/ */
%define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname) %define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname)
%extend UPM_Classname { %extend UPM_Classname {
void installISR(INTERRUPT intr, int gpio, void installISR(INTERRUPT intr, int gpio,
mraa::Edge level, jobject runnable) mraa::Edge level, jobject runnable)
{ {
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable); $self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
} }
} }
%enddef %enddef
/* Macro for adding JAVA installISR for mraa::Edge w/runnable.
UPM_Classname - UPM class name w/namespace.
example usage: JAVA_ADD_INSTALLISR_EDGE(upm::A110x)
*/
%define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname) %define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname)
%extend UPM_Classname { %extend UPM_Classname {
void installISR(mraa::Edge level, jobject runnable) void installISR(mraa::Edge level, jobject runnable)
{ {
$self->installISR(level, mraa_java_isr_callback, runnable); $self->installISR(level, mraa_java_isr_callback, runnable);
} }
} }
%enddef %enddef
/* Macro for adding JAVA installISR for pin w/runnable.
UPM_Classname - UPM class name w/namespace.
example usage: JAVA_ADD_INSTALLISR_PIN(upm::A110x)
*/
%define JAVA_ADD_INSTALLISR_PIN(UPM_Classname) %define JAVA_ADD_INSTALLISR_PIN(UPM_Classname)
%extend UPM_Classname { %extend UPM_Classname {
void installISR(int pin, jobject runnable) void installISR(int pin, jobject runnable)
{ {
$self->installISR(pin, mraa_java_isr_callback, runnable); $self->installISR(pin, mraa_java_isr_callback, runnable);
} }
} }
%enddef %enddef
/* Macro for adding JNI loadLibrary dependency /* Macro for adding JNI loadLibrary dependency.
usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb) MyModuleName: Target UPM JAVA package.
example usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb)
*/ */
%define JAVA_JNI_LOADLIBRARY(MyModuleName) %define JAVA_JNI_LOADLIBRARY(MyModuleName)
%pragma(java) jniclasscode=%{ %pragma(java) jniclasscode=%{
static { static {
try { try {
System.loadLibrary("MyModuleName"); System.loadLibrary("MyModuleName");
} catch (UnsatisfiedLinkError e) { } catch (UnsatisfiedLinkError e) {
System.err.println("Native code library (MyModuleName) failed to load. \n" + e); System.err.println("Native code library (MyModuleName) failed to load. \n" + e);
System.exit(1); System.exit(1);
} }
} }
%} %}
%enddef %enddef