From 8acb98641512d3ec6237789c4aaed4a5676dd109 Mon Sep 17 00:00:00 2001 From: Cheng Zhong Date: Thu, 21 Jan 2016 17:59:55 +0800 Subject: [PATCH 1/8] Added android support 1. Added Android NDK support for serial. 2. Give a simple sample app for android. --- README.md | 2 + android/README.md | 57 + android/android.iml | 19 + android/build.gradle | 24 + android/doc/allclasses-frame.html | 29 + android/doc/allclasses-noframe.html | 29 + android/doc/constant-values.html | 374 ++++ android/doc/deprecated-list.html | 111 ++ android/doc/help-doc.html | 208 ++ android/doc/index-files/index-1.html | 127 ++ android/doc/index-files/index-10.html | 122 ++ android/doc/index-files/index-11.html | 120 ++ android/doc/index-files/index-12.html | 118 ++ android/doc/index-files/index-13.html | 119 ++ android/doc/index-files/index-14.html | 134 ++ android/doc/index-files/index-15.html | 147 ++ android/doc/index-files/index-16.html | 255 +++ android/doc/index-files/index-17.html | 130 ++ android/doc/index-files/index-18.html | 175 ++ android/doc/index-files/index-19.html | 161 ++ android/doc/index-files/index-2.html | 198 ++ android/doc/index-files/index-3.html | 150 ++ android/doc/index-files/index-4.html | 139 ++ android/doc/index-files/index-5.html | 155 ++ android/doc/index-files/index-6.html | 132 ++ android/doc/index-files/index-7.html | 180 ++ android/doc/index-files/index-8.html | 118 ++ android/doc/index-files/index-9.html | 148 ++ android/doc/index.html | 71 + android/doc/overview-tree.html | 166 ++ android/doc/package-list | 1 + android/doc/resources/background.gif | Bin 0 -> 2313 bytes android/doc/resources/tab.gif | Bin 0 -> 291 bytes android/doc/resources/titlebar.gif | Bin 0 -> 10701 bytes android/doc/resources/titlebar_end.gif | Bin 0 -> 849 bytes android/doc/serial/ByteSize.html | 393 ++++ android/doc/serial/FlowControl.html | 339 ++++ android/doc/serial/Log.html | 1114 +++++++++++ android/doc/serial/Parity.html | 369 ++++ android/doc/serial/PortInfo.html | 294 +++ .../doc/serial/PortNotOpenedException.html | 217 ++ android/doc/serial/Serial.Builder.html | 399 ++++ android/doc/serial/Serial.html | 1759 +++++++++++++++++ android/doc/serial/SerialException.html | 278 +++ android/doc/serial/SerialIOException.html | 279 +++ android/doc/serial/Stopbits.html | 378 ++++ android/doc/serial/Timeout.html | 345 ++++ android/doc/serial/package-frame.html | 36 + android/doc/serial/package-summary.html | 220 +++ android/doc/serial/package-tree.html | 162 ++ android/doc/serialized-form.html | 134 ++ android/doc/stylesheet.css | 474 +++++ android/gradle.properties | 18 + android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53637 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + android/gradlew | 160 ++ android/gradlew.bat | 90 + android/library/build.gradle | 49 + android/library/library.iml | 85 + android/library/proguard-rules.pro | 17 + android/library/src/main/AndroidManifest.xml | 7 + .../src/main/java/serial/ByteSize.java | 50 + .../src/main/java/serial/FlowControl.java | 21 + android/library/src/main/java/serial/Log.java | 599 ++++++ .../library/src/main/java/serial/Parity.java | 31 + .../src/main/java/serial/PortInfo.java | 33 + .../java/serial/PortNotOpenedException.java | 27 + .../library/src/main/java/serial/Serial.java | 1055 ++++++++++ .../src/main/java/serial/SerialException.java | 27 + .../main/java/serial/SerialIOException.java | 31 + .../src/main/java/serial/Stopbits.java | 43 + .../library/src/main/java/serial/Timeout.java | 77 + android/library/src/main/jni/Android.mk | 25 + android/library/src/main/jni/Application.mk | 13 + android/library/src/main/jni/build-jni.sh | 25 + android/library/src/main/jni/glob.c | 906 +++++++++ android/library/src/main/jni/include/glob.h | 105 + .../src/main/jni/include/jni_utility.h | 313 +++ .../src/main/jni/include/linux/serial.h | 126 ++ .../src/main/jni/include/linux/tty_flags.h | 78 + android/library/src/main/jni/include/log.h | 37 + android/library/src/main/jni/include/serial | 1 + .../library/src/main/jni/include/sys/signal.h | 1 + .../library/src/main/jni/include/sysexits.h | 114 ++ android/library/src/main/jni/jni_main.cc | 60 + android/library/src/main/jni/jni_utility.cc | 278 +++ .../main/jni/libs/nativehelper/ALog-priv.h | 66 + .../src/main/jni/libs/nativehelper/Android.mk | 33 + .../main/jni/libs/nativehelper/JNIHelp.cpp | 341 ++++ .../jni/libs/nativehelper/JniConstants.cpp | 141 ++ .../jni/libs/nativehelper/JniInvocation.cpp | 166 ++ .../libs/nativehelper/MODULE_LICENSE_APACHE2 | 0 .../src/main/jni/libs/nativehelper/NOTICE | 190 ++ .../src/main/jni/libs/nativehelper/README | 11 + .../include/nativehelper/JNIHelp.h | 192 ++ .../include/nativehelper/JniConstants.h | 100 + .../include/nativehelper/JniInvocation.h | 66 + .../include/nativehelper/ScopedBytes.h | 81 + .../include/nativehelper/ScopedFd.h | 60 + .../include/nativehelper/ScopedLocalFrame.h | 40 + .../include/nativehelper/ScopedLocalRef.h | 63 + .../nativehelper/ScopedPrimitiveArray.h | 122 ++ .../include/nativehelper/ScopedStringChars.h | 74 + .../include/nativehelper/ScopedUtfChars.h | 71 + .../include/nativehelper/UniquePtr.h | 241 +++ .../nativehelper/include/nativehelper/jni.h | 1141 +++++++++++ .../include/nativehelper/toStringArray.h | 71 + .../jni/libs/nativehelper/tests/Android.mk | 35 + .../nativehelper/tests/JniInvocation_test.cpp | 144 ++ .../jni/libs/nativehelper/toStringArray.cpp | 48 + .../library/src/main/jni/list_ports_linux.cc | 1 + android/library/src/main/jni/serial.cc | 1 + android/library/src/main/jni/serial_jni.cc | 466 +++++ android/library/src/main/jni/serial_unix.cc | 1 + .../src/main/jniLibs/armeabi-v7a/gdb.setup | 3 + .../src/main/jniLibs/armeabi-v7a/gdbserver | Bin 0 -> 393604 bytes .../src/main/jniLibs/armeabi-v7a/libserial.so | Bin 0 -> 489284 bytes .../library/src/main/jniLibs/x86/gdb.setup | 3 + .../library/src/main/jniLibs/x86/gdbserver | Bin 0 -> 623400 bytes .../library/src/main/jniLibs/x86/libserial.so | Bin 0 -> 710972 bytes .../java/serial/android/ExampleUnitTest.java | 15 + android/sample/build.gradle | 29 + android/sample/proguard-rules.pro | 17 + android/sample/sample.iml | 99 + .../android/sample/ApplicationTest.java | 13 + android/sample/src/main/AndroidManifest.xml | 23 + .../serial/android/sample/MainActivity.java | 250 +++ .../src/main/res/layout/activity_main.xml | 27 + .../src/main/res/layout/content_main.xml | 144 ++ .../sample/src/main/res/menu/menu_main.xml | 14 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../sample/src/main/res/values-v21/styles.xml | 8 + .../src/main/res/values-w820dp/dimens.xml | 6 + .../sample/src/main/res/values-zh/strings.xml | 20 + android/sample/src/main/res/values/colors.xml | 6 + android/sample/src/main/res/values/dimens.xml | 6 + .../sample/src/main/res/values/strings.xml | 29 + android/sample/src/main/res/values/styles.xml | 17 + .../android/sample/ExampleUnitTest.java | 15 + android/settings.gradle | 1 + include/serial/impl/unix.h | 6 + 145 files changed, 20334 insertions(+) create mode 100644 android/README.md create mode 100644 android/android.iml create mode 100644 android/build.gradle create mode 100644 android/doc/allclasses-frame.html create mode 100644 android/doc/allclasses-noframe.html create mode 100644 android/doc/constant-values.html create mode 100644 android/doc/deprecated-list.html create mode 100644 android/doc/help-doc.html create mode 100644 android/doc/index-files/index-1.html create mode 100644 android/doc/index-files/index-10.html create mode 100644 android/doc/index-files/index-11.html create mode 100644 android/doc/index-files/index-12.html create mode 100644 android/doc/index-files/index-13.html create mode 100644 android/doc/index-files/index-14.html create mode 100644 android/doc/index-files/index-15.html create mode 100644 android/doc/index-files/index-16.html create mode 100644 android/doc/index-files/index-17.html create mode 100644 android/doc/index-files/index-18.html create mode 100644 android/doc/index-files/index-19.html create mode 100644 android/doc/index-files/index-2.html create mode 100644 android/doc/index-files/index-3.html create mode 100644 android/doc/index-files/index-4.html create mode 100644 android/doc/index-files/index-5.html create mode 100644 android/doc/index-files/index-6.html create mode 100644 android/doc/index-files/index-7.html create mode 100644 android/doc/index-files/index-8.html create mode 100644 android/doc/index-files/index-9.html create mode 100644 android/doc/index.html create mode 100644 android/doc/overview-tree.html create mode 100644 android/doc/package-list create mode 100644 android/doc/resources/background.gif create mode 100644 android/doc/resources/tab.gif create mode 100644 android/doc/resources/titlebar.gif create mode 100644 android/doc/resources/titlebar_end.gif create mode 100644 android/doc/serial/ByteSize.html create mode 100644 android/doc/serial/FlowControl.html create mode 100644 android/doc/serial/Log.html create mode 100644 android/doc/serial/Parity.html create mode 100644 android/doc/serial/PortInfo.html create mode 100644 android/doc/serial/PortNotOpenedException.html create mode 100644 android/doc/serial/Serial.Builder.html create mode 100644 android/doc/serial/Serial.html create mode 100644 android/doc/serial/SerialException.html create mode 100644 android/doc/serial/SerialIOException.html create mode 100644 android/doc/serial/Stopbits.html create mode 100644 android/doc/serial/Timeout.html create mode 100644 android/doc/serial/package-frame.html create mode 100644 android/doc/serial/package-summary.html create mode 100644 android/doc/serial/package-tree.html create mode 100644 android/doc/serialized-form.html create mode 100644 android/doc/stylesheet.css create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.jar create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100755 android/gradlew create mode 100644 android/gradlew.bat create mode 100644 android/library/build.gradle create mode 100644 android/library/library.iml create mode 100644 android/library/proguard-rules.pro create mode 100644 android/library/src/main/AndroidManifest.xml create mode 100644 android/library/src/main/java/serial/ByteSize.java create mode 100644 android/library/src/main/java/serial/FlowControl.java create mode 100644 android/library/src/main/java/serial/Log.java create mode 100644 android/library/src/main/java/serial/Parity.java create mode 100644 android/library/src/main/java/serial/PortInfo.java create mode 100644 android/library/src/main/java/serial/PortNotOpenedException.java create mode 100644 android/library/src/main/java/serial/Serial.java create mode 100644 android/library/src/main/java/serial/SerialException.java create mode 100644 android/library/src/main/java/serial/SerialIOException.java create mode 100644 android/library/src/main/java/serial/Stopbits.java create mode 100644 android/library/src/main/java/serial/Timeout.java create mode 100644 android/library/src/main/jni/Android.mk create mode 100644 android/library/src/main/jni/Application.mk create mode 100755 android/library/src/main/jni/build-jni.sh create mode 100644 android/library/src/main/jni/glob.c create mode 100644 android/library/src/main/jni/include/glob.h create mode 100644 android/library/src/main/jni/include/jni_utility.h create mode 100644 android/library/src/main/jni/include/linux/serial.h create mode 100644 android/library/src/main/jni/include/linux/tty_flags.h create mode 100644 android/library/src/main/jni/include/log.h create mode 120000 android/library/src/main/jni/include/serial create mode 100644 android/library/src/main/jni/include/sys/signal.h create mode 100644 android/library/src/main/jni/include/sysexits.h create mode 100644 android/library/src/main/jni/jni_main.cc create mode 100644 android/library/src/main/jni/jni_utility.cc create mode 100644 android/library/src/main/jni/libs/nativehelper/ALog-priv.h create mode 100644 android/library/src/main/jni/libs/nativehelper/Android.mk create mode 100644 android/library/src/main/jni/libs/nativehelper/JNIHelp.cpp create mode 100644 android/library/src/main/jni/libs/nativehelper/JniConstants.cpp create mode 100644 android/library/src/main/jni/libs/nativehelper/JniInvocation.cpp create mode 100644 android/library/src/main/jni/libs/nativehelper/MODULE_LICENSE_APACHE2 create mode 100644 android/library/src/main/jni/libs/nativehelper/NOTICE create mode 100644 android/library/src/main/jni/libs/nativehelper/README create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/JNIHelp.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniConstants.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniInvocation.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedBytes.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedFd.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalFrame.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalRef.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedPrimitiveArray.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedStringChars.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedUtfChars.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/UniquePtr.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/jni.h create mode 100644 android/library/src/main/jni/libs/nativehelper/include/nativehelper/toStringArray.h create mode 100644 android/library/src/main/jni/libs/nativehelper/tests/Android.mk create mode 100644 android/library/src/main/jni/libs/nativehelper/tests/JniInvocation_test.cpp create mode 100644 android/library/src/main/jni/libs/nativehelper/toStringArray.cpp create mode 120000 android/library/src/main/jni/list_ports_linux.cc create mode 120000 android/library/src/main/jni/serial.cc create mode 100644 android/library/src/main/jni/serial_jni.cc create mode 120000 android/library/src/main/jni/serial_unix.cc create mode 100644 android/library/src/main/jniLibs/armeabi-v7a/gdb.setup create mode 100755 android/library/src/main/jniLibs/armeabi-v7a/gdbserver create mode 100755 android/library/src/main/jniLibs/armeabi-v7a/libserial.so create mode 100644 android/library/src/main/jniLibs/x86/gdb.setup create mode 100755 android/library/src/main/jniLibs/x86/gdbserver create mode 100755 android/library/src/main/jniLibs/x86/libserial.so create mode 100644 android/library/src/test/java/serial/android/ExampleUnitTest.java create mode 100644 android/sample/build.gradle create mode 100644 android/sample/proguard-rules.pro create mode 100644 android/sample/sample.iml create mode 100644 android/sample/src/androidTest/java/serial/android/sample/ApplicationTest.java create mode 100644 android/sample/src/main/AndroidManifest.xml create mode 100644 android/sample/src/main/java/serial/android/sample/MainActivity.java create mode 100644 android/sample/src/main/res/layout/activity_main.xml create mode 100644 android/sample/src/main/res/layout/content_main.xml create mode 100644 android/sample/src/main/res/menu/menu_main.xml create mode 100644 android/sample/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/sample/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/sample/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/sample/src/main/res/values-v21/styles.xml create mode 100644 android/sample/src/main/res/values-w820dp/dimens.xml create mode 100644 android/sample/src/main/res/values-zh/strings.xml create mode 100644 android/sample/src/main/res/values/colors.xml create mode 100644 android/sample/src/main/res/values/dimens.xml create mode 100644 android/sample/src/main/res/values/strings.xml create mode 100644 android/sample/src/main/res/values/styles.xml create mode 100644 android/sample/src/test/java/serial/android/sample/ExampleUnitTest.java create mode 100644 android/settings.gradle diff --git a/README.md b/README.md index 2c4182d..bb6c2b0 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ This library is in use in several robotics related projects and can be built and Serial is a class that provides the basic interface common to serial libraries (open, close, read, write, etc..) and requires no extra dependencies. It also provides tight control over timeouts and control over handshaking lines. +For android support, see android/README. + ### Documentation Website: http://wjwwood.github.com/serial/ diff --git a/android/README.md b/android/README.md new file mode 100644 index 0000000..367afbe --- /dev/null +++ b/android/README.md @@ -0,0 +1,57 @@ +# Serial Communication Library for android + +This is the android support for Cross-platform, Serial Port library. + +The android library is not strictly tested. You should test it yourself and handle any issue. + +### Documentation + +Website: http://wjwwood.github.com/serial/ + +Native API Documentation: http://wjwwood.github.com/serial/doc/1.1.0/index.html +Java API Documentation: See android/doc + +### Dependencies + +To build the lib: +* NDK r10 (http://developer.android.com/intl/zh-cn/ndk/downloads/index.html) + +To open the sample project: +* Android Studio 1.5 + +### Install + +Get the code: + + git clone https://github.com/chzhong/serial.git + +Build: + + cd android/library/src/main/jni + ndk-build + +Use: + +Copy android/library to your project folder a reference it as a library project. +See android/sample for an example. + +### License + +The MIT License + +Copyright (c) 2012 William Woodall, John Harrison + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +### Authors + +William Woodall +John Harrison + +### Contact + +William Woodall diff --git a/android/android.iml b/android/android.iml new file mode 100644 index 0000000..f6e5e11 --- /dev/null +++ b/android/android.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..e17542c --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:1.5.0' + //classpath "com.android.tools.build:gradle-experimental:0.6.0-alpha5" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/doc/allclasses-frame.html b/android/doc/allclasses-frame.html new file mode 100644 index 0000000..899f964 --- /dev/null +++ b/android/doc/allclasses-frame.html @@ -0,0 +1,29 @@ + + + + + +All Classes + + + + +

All Classes

+ + + diff --git a/android/doc/allclasses-noframe.html b/android/doc/allclasses-noframe.html new file mode 100644 index 0000000..6da664d --- /dev/null +++ b/android/doc/allclasses-noframe.html @@ -0,0 +1,29 @@ + + + + + +All Classes + + + + +

All Classes

+ + + diff --git a/android/doc/constant-values.html b/android/doc/constant-values.html new file mode 100644 index 0000000..bb9c855 --- /dev/null +++ b/android/doc/constant-values.html @@ -0,0 +1,374 @@ + + + + + +Constant Field Values + + + + + + + + + + +
+

Constant Field Values

+

Contents

+ +
+
+ + +

serial.*

+ +
+ + + + + + diff --git a/android/doc/deprecated-list.html b/android/doc/deprecated-list.html new file mode 100644 index 0000000..39d53d3 --- /dev/null +++ b/android/doc/deprecated-list.html @@ -0,0 +1,111 @@ + + + + + +Deprecated List + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+
+ +
+ + + + + +
+ + + + diff --git a/android/doc/help-doc.html b/android/doc/help-doc.html new file mode 100644 index 0000000..1a7c019 --- /dev/null +++ b/android/doc/help-doc.html @@ -0,0 +1,208 @@ + + + + + +API Help + + + + + + + +
+ + + + + +
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
    +
  • +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    +
      +
    • Interfaces (italic)
    • +
    • Classes
    • +
    • Enums
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Types
    • +
    +
  • +
  • +

    Class/Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
      +
    • Class inheritance diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class/interface declaration
    • +
    • Class/interface description
    • +
    +
      +
    • Nested Class Summary
    • +
    • Field Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    +
      +
    • Field Detail
    • +
    • Constructor Detail
    • +
    • Method Detail
    • +
    +

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
  • +
  • +

    Annotation Type

    +

    Each annotation type has its own separate page with the following sections:

    +
      +
    • Annotation Type declaration
    • +
    • Annotation Type description
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    • Element Detail
    • +
    +
  • +
  • +

    Enum

    +

    Each enum has its own separate page with the following sections:

    +
      +
    • Enum declaration
    • +
    • Enum description
    • +
    • Enum Constant Summary
    • +
    • Enum Constant Detail
    • +
    +
  • +
  • +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • +
    +
  • +
  • +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
  • +
  • +

    Index

    +

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    +
  • +
  • +

    Prev/Next

    +

    These links take you to the next or previous class, interface, package, or related page.

    +
  • +
  • +

    Frames/No Frames

    +

    These links show and hide the HTML frames. All pages are available with or without frames.

    +
  • +
  • +

    All Classes

    +

    The All Classes link shows all classes and interfaces except non-static nested types.

    +
  • +
  • +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
  • +
  • +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
  • +
+This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-1.html b/android/doc/index-files/index-1.html new file mode 100644 index 0000000..9244a2d --- /dev/null +++ b/android/doc/index-files/index-1.html @@ -0,0 +1,127 @@ + + + + + +A-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

A

+
+
ALL - Static variable in class serial.Log
+
+
Priority constant for enable all loggings.
+
+
ASSERT - Static variable in class serial.Log
+
+
Priority constant for the Log.println(int, String, String) or + Log.setFilterLevel(int) method.
+
+
available() - Method in class serial.Serial
+
+
Return the number of characters in the buffer.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-10.html b/android/doc/index-files/index-10.html new file mode 100644 index 0000000..7c3e025 --- /dev/null +++ b/android/doc/index-files/index-10.html @@ -0,0 +1,122 @@ + + + + + +L-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

L

+
+
listPorts() - Static method in class serial.Serial
+
+
List available ports on this device.
+
+
Log - Class in serial
+
+
Log replacement for android.util.Log.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-11.html b/android/doc/index-files/index-11.html new file mode 100644 index 0000000..a5787fe --- /dev/null +++ b/android/doc/index-files/index-11.html @@ -0,0 +1,120 @@ + + + + + +M-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

M

+
+
MAX - Static variable in class serial.Timeout
+
+
Value that represents interbyte timeout should be disabled.
+
+
myAssert(boolean, String) - Static method in class serial.Log
+
 
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-12.html b/android/doc/index-files/index-12.html new file mode 100644 index 0000000..04c0784 --- /dev/null +++ b/android/doc/index-files/index-12.html @@ -0,0 +1,118 @@ + + + + + +N-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

N

+
+
NONE - Static variable in class serial.Log
+
+
Priority constant for disable all loggings.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-13.html b/android/doc/index-files/index-13.html new file mode 100644 index 0000000..95a18a3 --- /dev/null +++ b/android/doc/index-files/index-13.html @@ -0,0 +1,119 @@ + + + + + +O-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

O

+
+
open() - Method in class serial.Serial
+
+
Opens the serial port as long as the port is set and the port isn't + already open.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-14.html b/android/doc/index-files/index-14.html new file mode 100644 index 0000000..3bc570c --- /dev/null +++ b/android/doc/index-files/index-14.html @@ -0,0 +1,134 @@ + + + + + +P-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

P

+
+
Parity - Enum in serial
+
+
Enumeration defines the possible parity types for the serial port.
+
+
port - Variable in class serial.PortInfo
+
+
Address of the serial port (this can be passed to the constructor of Serial).
+
+
PortInfo - Class in serial
+
+
Created by chzhong on 1/20/16.
+
+
PortNotOpenedException - Exception in serial
+
+
Created by chzhong on 1/20/16.
+
+
println(int, String, String) - Static method in class serial.Log
+
+
Low-level logging call.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-15.html b/android/doc/index-files/index-15.html new file mode 100644 index 0000000..2746aed --- /dev/null +++ b/android/doc/index-files/index-15.html @@ -0,0 +1,147 @@ + + + + + +R-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

R

+
+
read(byte[], int, int) - Method in class serial.Serial
+
+
Read a given amount of bytes from the serial port into a given buffer.
+
+
read() - Method in class serial.Serial
+
+
Read all data available from the serial port.
+
+
read(ByteBuffer, int) - Method in class serial.Serial
+
+
Read a given amount of bytes from the serial port into a give buffer.
+
+
read(StringBuilder, int, Charset) - Method in class serial.Serial
+
+
Read a given amount of bytes from the serial port into a give buffer.
+
+
read(int, Charset) - Method in class serial.Serial
+
+
Read a given amount of bytes from the serial port and return a string + containing the data.
+
+
readline(StringBuilder, int, String) - Method in class serial.Serial
+
+
Reads in a line or until a given delimiter has been processed.
+
+
readline(int, String) - Method in class serial.Serial
+
+
Reads in a line or until a given delimiter has been processed.
+
+
readlines(int, String) - Method in class serial.Serial
+
+
Reads in multiple lines until the serial port times out.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-16.html b/android/doc/index-files/index-16.html new file mode 100644 index 0000000..6c8009e --- /dev/null +++ b/android/doc/index-files/index-16.html @@ -0,0 +1,255 @@ + + + + + +S-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

S

+
+
sendBreak(int) - Method in class serial.Serial
+
+
Sends the RS-232 break signal.
+
+
serial - package serial
+
 
+
Serial - Class in serial
+
+
Serial Port.
+
+
Serial.Builder - Class in serial
+
+
Builder for Serial.
+
+
Serial.Builder() - Constructor for class serial.Serial.Builder
+
+
Initial a Serial.Builder for serial port.
+
+
Serial.Builder(String) - Constructor for class serial.Serial.Builder
+
+
Initial a Serial.Builder for serial port.
+
+
Serial.Builder(String, int) - Constructor for class serial.Serial.Builder
+
+
Initial a Serial.Builder for serial port.
+
+
SerialException - Exception in serial
+
+
Created by chzhong on 1/20/16.
+
+
SerialException(String) - Constructor for exception serial.SerialException
+
+
Constructs a new SerialException with the current stack trace + and the specified detail message.
+
+
SerialException(String, Throwable) - Constructor for exception serial.SerialException
+
+
Constructs a new PortNotOpenedException with the current stack trace, + the specified detail message and the specified cause.
+
+
SerialIOException - Exception in serial
+
+
Created by chzhong on 1/20/16.
+
+
SerialIOException(String) - Constructor for exception serial.SerialIOException
+
+
Constructs a new SerialIOException with its stack trace and detail + message filled in.
+
+
SerialIOException(String, Throwable) - Constructor for exception serial.SerialIOException
+
+
Constructs a new instance of this class with detail message and cause + filled in.
+
+
setApplicationTag(String) - Static method in class serial.Log
+
+
Set the default tag for this application.
+
+
setBaudrate(int) - Method in class serial.Serial.Builder
+
 
+
setBaudrate(int) - Method in class serial.Serial
+
+
Sets the baudrate for the serial port.
+
+
setBreak(boolean) - Method in class serial.Serial
+
+
Set the break condition to a given level.
+
+
setBreak() - Method in class serial.Serial
+
+
Set the break condition to true level.
+
+
setBytesize(ByteSize) - Method in class serial.Serial.Builder
+
 
+
setBytesize(ByteSize) - Method in class serial.Serial
+
+
Sets the bytesize for the serial port.
+
+
setDTR(boolean) - Method in class serial.Serial
+
+
Set the DTR handshaking line to the given level.
+
+
setDTR() - Method in class serial.Serial
+
+
Set the DTR handshaking line to the given level.
+
+
setFilterLevel(int) - Static method in class serial.Log
+
+
Sets the filter level of logs.
+
+
setFlowcontrol(FlowControl) - Method in class serial.Serial.Builder
+
 
+
setFlowcontrol(FlowControl) - Method in class serial.Serial
+
+
Sets the flow control for the serial port.
+
+
setParity(Parity) - Method in class serial.Serial.Builder
+
 
+
setParity(Parity) - Method in class serial.Serial
+
+
Sets the parity for the serial port.
+
+
setPort(String) - Method in class serial.Serial.Builder
+
 
+
setPort(String) - Method in class serial.Serial
+
+
Sets the serial port identifier.
+
+
setRTS(boolean) - Method in class serial.Serial
+
+
Set the RTS handshaking line to the given level.
+
+
setRTS() - Method in class serial.Serial
+
+
Set the RTS handshaking line to the true level.
+
+
setStopbits(Stopbits) - Method in class serial.Serial.Builder
+
 
+
setStopbits(Stopbits) - Method in class serial.Serial
+
+
Sets the stopbits for the serial port.
+
+
setTimeout(Timeout) - Method in class serial.Serial.Builder
+
 
+
setTimeout(Timeout) - Method in class serial.Serial
+
+
Sets the timeout for reads and writes using the Timeout struct.
+
+
setTimeout(int, int, int, int, int) - Method in class serial.Serial
+
+
Sets the timeout for reads and writes.
+
+
simpleTimeout(int) - Static method in class serial.Timeout
+
+
Convenience function to generate Timeout structs using a + single absolute timeout.
+
+
Stopbits - Enum in serial
+
+
Enumeration defines the possible stopbit types for the serial port.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-17.html b/android/doc/index-files/index-17.html new file mode 100644 index 0000000..5c00317 --- /dev/null +++ b/android/doc/index-files/index-17.html @@ -0,0 +1,130 @@ + + + + + +T-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

T

+
+
Timeout - Class in serial
+
+
Structure for setting the timeout of the serial port, times are + in milliseconds.
+
+
Timeout() - Constructor for class serial.Timeout
+
 
+
Timeout(int) - Constructor for class serial.Timeout
+
+
Convenience function to generate Timeout structs using a + single absolute timeout.
+
+
Timeout(int, int, int, int, int) - Constructor for class serial.Timeout
+
 
+
toString() - Method in class serial.PortInfo
+
 
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-18.html b/android/doc/index-files/index-18.html new file mode 100644 index 0000000..7cc04c3 --- /dev/null +++ b/android/doc/index-files/index-18.html @@ -0,0 +1,175 @@ + + + + + +V-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

V

+
+
v(String) - Static method in class serial.Log
+
+
Send a Log.VERBOSE log message.
+
+
v(String, String) - Static method in class serial.Log
+
+
Send a Log.VERBOSE log message.
+
+
v(String, String, Object...) - Static method in class serial.Log
+
+
Send a Log.VERBOSE log message.
+
+
v(String, String, Throwable) - Static method in class serial.Log
+
+
Send a Log.VERBOSE log message and log the exception.
+
+
value - Variable in enum serial.Stopbits
+
+
Internal value of the enumeration.
+
+
valueOf(String) - Static method in enum serial.ByteSize
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum serial.FlowControl
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum serial.Parity
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum serial.Stopbits
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum serial.ByteSize
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum serial.FlowControl
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum serial.Parity
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum serial.Stopbits
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
VERBOSE - Static variable in class serial.Log
+
+
Priority constant for Log.println(int, String, String) or + Log.setFilterLevel(int) methods; use Log.v.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-19.html b/android/doc/index-files/index-19.html new file mode 100644 index 0000000..ec52d28 --- /dev/null +++ b/android/doc/index-files/index-19.html @@ -0,0 +1,161 @@ + + + + + +W-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

W

+
+
w(String) - Static method in class serial.Log
+
+
Send a Log.WARN log message.
+
+
w(String, String) - Static method in class serial.Log
+
+
Send a Log.WARN log message.
+
+
w(String, String, Object...) - Static method in class serial.Log
+
+
Send a Log.WARN log message.
+
+
w(String, String, Throwable) - Static method in class serial.Log
+
+
Send a Log.WARN log message and log the exception.
+
+
w(String, Throwable) - Static method in class serial.Log
+
 
+
w(Throwable) - Static method in class serial.Log
+
 
+
waitByteTimes(int) - Method in class serial.Serial
+
+
Block for a period of time corresponding to the transmission time of + count characters at present serial settings.
+
+
waitForChange() - Method in class serial.Serial
+
+
Blocks until CTS, DSR, RI, CD changes or something interrupts it.
+
+
waitReadable() - Method in class serial.Serial
+
+
Block until there is serial data to read or read_timeout_constant + number of milliseconds have elapsed.
+
+
WARN - Static variable in class serial.Log
+
+
Priority constant for the Log.println(int, String, String) or + Log.setFilterLevel(int) method; use Log.w.
+
+
write(byte[], int) - Method in class serial.Serial
+
+
Write a string to the serial port.
+
+
write(String) - Method in class serial.Serial
+
+
Write a string to the serial port.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-2.html b/android/doc/index-files/index-2.html new file mode 100644 index 0000000..7897027 --- /dev/null +++ b/android/doc/index-files/index-2.html @@ -0,0 +1,198 @@ + + + + + +B-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

B

+
+
BAUDRATE_110 - Static variable in class serial.Serial
+
+
Baudrate 110 bits/s.
+
+
BAUDRATE_115200 - Static variable in class serial.Serial
+
+
Baudrate 115200 bits/s.
+
+
BAUDRATE_1200 - Static variable in class serial.Serial
+
+
Baudrate 1200 bits/s.
+
+
BAUDRATE_128000 - Static variable in class serial.Serial
+
+
Baudrate 128000 bits/s.
+
+
BAUDRATE_14400 - Static variable in class serial.Serial
+
+
Baudrate 14400 bits/s.
+
+
BAUDRATE_153600 - Static variable in class serial.Serial
+
+
Baudrate 153600 bits/s.
+
+
BAUDRATE_230400 - Static variable in class serial.Serial
+
+
Baudrate 230400 bits/s.
+
+
BAUDRATE_2400 - Static variable in class serial.Serial
+
+
Baudrate 2400 bits/s.
+
+
BAUDRATE_256000 - Static variable in class serial.Serial
+
+
Baudrate 256000 bits/s.
+
+
BAUDRATE_28800 - Static variable in class serial.Serial
+
+
Baudrate 28800 bits/s.
+
+
BAUDRATE_300 - Static variable in class serial.Serial
+
+
Baudrate 300 bits/s.
+
+
BAUDRATE_38400 - Static variable in class serial.Serial
+
+
Baudrate 38400 bits/s.
+
+
BAUDRATE_460800 - Static variable in class serial.Serial
+
+
Baudrate 460800 bits/s.
+
+
BAUDRATE_4800 - Static variable in class serial.Serial
+
+
Baudrate 4800 bits/s.
+
+
BAUDRATE_56000 - Static variable in class serial.Serial
+
+
Baudrate 56000 bits/s.
+
+
BAUDRATE_57600 - Static variable in class serial.Serial
+
+
Baudrate 57600 bits/s.
+
+
BAUDRATE_600 - Static variable in class serial.Serial
+
+
Baudrate 600 bits/s.
+
+
BAUDRATE_921600 - Static variable in class serial.Serial
+
+
Baudrate 921600 bits/s.
+
+
BAUDRATE_9600 - Static variable in class serial.Serial
+
+
Baudrate 9600 bits/s.
+
+
bitLength - Variable in enum serial.ByteSize
+
+
Number of bits in a single byte.
+
+
ByteSize - Enum in serial
+
+
Enumeration defines the possible bytesizes for the serial port.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-3.html b/android/doc/index-files/index-3.html new file mode 100644 index 0000000..03004c5 --- /dev/null +++ b/android/doc/index-files/index-3.html @@ -0,0 +1,150 @@ + + + + + +C-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

C

+
+
CHARSET_DEFAULT - Static variable in class serial.Serial
+
+
Default charset.
+
+
CHARSET_ISO_8859_1 - Static variable in class serial.Serial
+
+
ISO-8859-1 charset.
+
+
CHARSET_US_ASCII - Static variable in class serial.Serial
+
+
US-ASCII charset.
+
+
CHARSET_UTF16 - Static variable in class serial.Serial
+
+
UTF-16 charset.
+
+
CHARSET_UTF16BE - Static variable in class serial.Serial
+
+
UTF-16BE charset.
+
+
CHARSET_UTF16LE - Static variable in class serial.Serial
+
+
UTF-16LE charset.
+
+
CHARSET_UTF8 - Static variable in class serial.Serial
+
+
UTF-8 charset.
+
+
close() - Method in class serial.Serial
+
+
Closes the serial port.
+
+
create() - Method in class serial.Serial.Builder
+
+
Create the serial object with give parameters.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-4.html b/android/doc/index-files/index-4.html new file mode 100644 index 0000000..a9439c4 --- /dev/null +++ b/android/doc/index-files/index-4.html @@ -0,0 +1,139 @@ + + + + + +D-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

D

+
+
d(String) - Static method in class serial.Log
+
+
Send a Log.DEBUG log message.
+
+
d(String, String) - Static method in class serial.Log
+
+
Send a Log.DEBUG log message.
+
+
d(String, String, Object...) - Static method in class serial.Log
+
+
Send a Log.DEBUG log message.
+
+
d(String, String, Throwable) - Static method in class serial.Log
+
+
Send a Log.DEBUG log message and log the exception.
+
+
DEBUG - Static variable in class serial.Log
+
+
Priority constant for the Log.println(int, String, String) or + Log.setFilterLevel(int) method; use Log.d.
+
+
description - Variable in class serial.PortInfo
+
+
Human readable description of serial device if available.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-5.html b/android/doc/index-files/index-5.html new file mode 100644 index 0000000..8142f9b --- /dev/null +++ b/android/doc/index-files/index-5.html @@ -0,0 +1,155 @@ + + + + + +E-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

E

+
+
e(String, String, Object...) - Static method in class serial.Log
+
+
Send an Log.ERROR log message.
+
+
e(String) - Static method in class serial.Log
+
+
Send an Log.ERROR log message.
+
+
e(Throwable) - Static method in class serial.Log
+
+
Send an Log.ERROR log message.
+
+
e(String, String) - Static method in class serial.Log
+
+
Send an Log.ERROR log message.
+
+
e(String, Throwable) - Static method in class serial.Log
+
+
Send a Log.ERROR log message and log the exception.
+
+
e(String, String, Throwable) - Static method in class serial.Log
+
+
Send a Log.ERROR log message and log the exception.
+
+
EOL_CR - Static variable in class serial.Serial
+
+
End-of-line: carriage-return (\n).
+
+
EOL_CRLF - Static variable in class serial.Serial
+
+
End-of-line: CR & LF (\r\n).
+
+
EOL_LF - Static variable in class serial.Serial
+
+
End-of-line: line-feed (\n).
+
+
ERROR - Static variable in class serial.Log
+
+
Priority constant for the Log.println(int, String, String) or + Log.setFilterLevel(int) method; use Log.e.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-6.html b/android/doc/index-files/index-6.html new file mode 100644 index 0000000..2484c96 --- /dev/null +++ b/android/doc/index-files/index-6.html @@ -0,0 +1,132 @@ + + + + + +F-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

F

+
+
finalize() - Method in class serial.Serial
+
 
+
FlowControl - Enum in serial
+
+
Enumeration defines the possible flowcontrol types for the serial port.
+
+
flush() - Method in class serial.Serial
+
+
Flush the input and output buffers
+
+
flushInput() - Method in class serial.Serial
+
+
Flush only the input buffer
+
+
flushOutput() - Method in class serial.Serial
+
+
Flush only the output buffer
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-7.html b/android/doc/index-files/index-7.html new file mode 100644 index 0000000..e84c408 --- /dev/null +++ b/android/doc/index-files/index-7.html @@ -0,0 +1,180 @@ + + + + + +G-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

G

+
+
getApplicationTag() - Static method in class serial.Log
+
+
Gets the default tag of the application.
+
+
getBaudrate() - Method in class serial.Serial
+
+
Gets the baudrate for the serial port.
+
+
getBytesize() - Method in class serial.Serial
+
+
Gets the bytesize for the serial port.
+
+
getCallerFrame() - Static method in class serial.Log
+
+
Return the StackTraceElement for current method's caller.
+
+
getCD() - Method in class serial.Serial
+
+
Returns the current status of the CD line.
+
+
getCTS() - Method in class serial.Serial
+
 
+
getCurrentFrame() - Static method in class serial.Log
+
+
Return the StackTraceElement for current method.
+
+
getDSR() - Method in class serial.Serial
+
+
Returns the current status of the DSR line.
+
+
getFilterLevel() - Static method in class serial.Log
+
+
Gets the filter level of logs.
+
+
getFlowcontrol() - Method in class serial.Serial
+
+
Gets the flow control for the serial port.
+
+
getParity() - Method in class serial.Serial
+
+
Gets the parity for the serial port.
+
+
getPort() - Method in class serial.Serial
+
+
Gets the serial port identifier.
+
+
getRI() - Method in class serial.Serial
+
+
Returns the current status of the RI line.
+
+
getStackFrameAt(int) - Static method in class serial.Log
+
+
Return specified StackTraceElement on the call stack, relative to current method.
+
+
getStackTraceString(Throwable) - Static method in class serial.Log
+
+
Handy function to get a loggable stack trace from a Throwable
+
+
getStopbits() - Method in class serial.Serial
+
+
Gets the stopbits for the serial port.
+
+
getTimeout() - Method in class serial.Serial
+
+
Gets the timeout for reads in seconds.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-8.html b/android/doc/index-files/index-8.html new file mode 100644 index 0000000..2891c05 --- /dev/null +++ b/android/doc/index-files/index-8.html @@ -0,0 +1,118 @@ + + + + + +H-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

H

+
+
hardwareId - Variable in class serial.PortInfo
+
+
Hardware ID (e.g.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index-files/index-9.html b/android/doc/index-files/index-9.html new file mode 100644 index 0000000..b68e2f4 --- /dev/null +++ b/android/doc/index-files/index-9.html @@ -0,0 +1,148 @@ + + + + + +I-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I L M N O P R S T V W  + + +

I

+
+
i(String) - Static method in class serial.Log
+
+
Send an Log.INFO log message.
+
+
i(String, String) - Static method in class serial.Log
+
+
Send an Log.INFO log message.
+
+
i(String, String, Object...) - Static method in class serial.Log
+
+
Send an Log.INFO log message.
+
+
i(String, String, Throwable) - Static method in class serial.Log
+
+
Send a Log.INFO log message and log the exception.
+
+
INFO - Static variable in class serial.Log
+
+
Priority constant for the Log.println(int, String, String) or + Log.setFilterLevel(int) method; use Log.i.
+
+
isLoggable(String, int) - Static method in class serial.Log
+
+
Checks to see whether or not a log for the specified tag is loggable at + the specified level.
+
+
isOpen() - Method in class serial.Serial
+
+
Gets the open status of the serial port.
+
+
isValid() - Method in class serial.Serial
+
+
Determine whether this instance has a valid port.
+
+
+A B C D E F G H I L M N O P R S T V W 
+ +
+ + + + + +
+ + + + diff --git a/android/doc/index.html b/android/doc/index.html new file mode 100644 index 0000000..9ed017e --- /dev/null +++ b/android/doc/index.html @@ -0,0 +1,71 @@ + + + + + +Generated Documentation (Untitled) + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="serial/package-summary.html">Non-frame version</a>.</p> + + + diff --git a/android/doc/overview-tree.html b/android/doc/overview-tree.html new file mode 100644 index 0000000..486f36a --- /dev/null +++ b/android/doc/overview-tree.html @@ -0,0 +1,166 @@ + + + + + +Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+
    +
  • java.lang.Object + +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/android/doc/package-list b/android/doc/package-list new file mode 100644 index 0000000..b6be06a --- /dev/null +++ b/android/doc/package-list @@ -0,0 +1 @@ +serial diff --git a/android/doc/resources/background.gif b/android/doc/resources/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..f471940fde2f39ef8943a6af9569bcf986b1579b GIT binary patch literal 2313 zcmV+k3HJ6!Nk%w1VKM-40OkMy00030|NlK(aXwsfKV5S}VtGJbbVOr%L0@%CZH88Q zl{{NzcR^uxNo<2iYk@pjY)*5FJz8x~bc{)B zfk z+1T6M-s9WdW8dcJ-wO*3@9+W*5AY543-j^$^!EPz_4eHZ2#>)41`h@dc!2OAgN6$a zCS2I?;lqgx6IR4nkpTe;1RN0f=zxMq2O=q`94V5d$&e>Unta)^<;;^G3>e7yp=ZvW z6DIW3xpSvaogXF?_4%`@(V;s}NR^5J!3hrtJV@1QRV&r5S*L!zYE|rss${iFkg&!? zTN5V#)~=bmMorwgZsEpdOE)iExo+FO-8;8Kga{=HbSQCnF=E6W3?o*|ID%uwi5**> zJXy127Y9m+=HQ|PhXWi+xNwoWv}n_%Pq%(e+H~mGqhq5kv4Mo|-n~g|7!F*xZ{xv< zCpXS~dGg^IGK?4@J-T%b(XnUHFul6n<@2&4)zzyO2) z3Q8`i0+UKY*`$}e9mmp;tg*))`|PsK1|hAo%u0K$vDwm4gaSkm0j{`26k#qAKmbuhxZ#cquDR>B zD{s8+&TH-uNg$C#68QG}1HMBHfrP&L@@w$F_!itRzXdCN@V|LDAu%3!IDtq1#1UV7 z#1RxvT=B(DWbCoU5l=ia$Pp`Hgb_?Mp@hmtxZDI2N-)v#$}PXVvdm1d>@v(v`0TUJ zF)Pu89(q`zv=w^nVTIF3@3BYIPA}c`(@ZCAwbNBEt@PDUKe5CTR8aB66IE1!w%Amt zy+jpcn~k>GZpVFg+H6x{_uOksvBlq0OyT$6TyQZ37k(cOxZr|JEx1sGm<(M9gH z-~PMqyn|tT=))UN`|-FFFUA#KToK0fUOaz=7}Z~KeHhVC&%O27cTfHQ^WBU8z4p&T zp#>D|V}XShTD;Hx745Iz{`>K-Z$A|7!*Boo{mY;G21vjH8t{M!OrQc6$iN0V@PQDF zpadsK!3tXNf*8!81~qnXWuHZ)kytd=_y+ADWvw31ouV;CdZ#ya*(l7-A-C-Y^+iit8O zBy3*`Ls$|5Hn4m_^I^|C7{m7EFn|5vTk;|oywIgCc9Bb*=L+Y$)M>9GC<|HGs@6NB zHLY%03!dDf=eDRt2O6lVSFRcsuWZEwU?=z$CZ0W?#VJfdN>HG(l%oKpyiftJc|Y)xkjSJYCrQal-0PC~()T9xwF!Jf zVi1UA#3BBbh(i8r5&v#Pz!cF41KjbCc?4u2@@Q~oKLirt2TM30;y6b+zyX2`Yl9u; z`0$3;v0-YUp&7NdPT#q`cZlbij$jvbRk6R>8g*>}*b9E+WDwmpHAAxYzyT aU_pX{M6b8i>#Dq3onfZy}_nli%!Q$ZV%e&!tN2 zX3B0NWXQ443Eo1rUP86rLU>O>oTp%wt3Z{Tz&P*)Iraq^_@X;RtUFY!JxH|4U!>kw zxXwqo&R3Y=EsXaR!ng@y+y$%L1P3FZ4@N!j3m5MW74HcC->_JFuvlxLXiI=-OQ2|@ zpGc#>2-aN)<1RE9^`bB0`65VSK2>5m>CHs^YZCC)NX*NfbeT1%)Cxpu2_(6cCbLvjLY`hf1%*q}QO*%V4SfOu5Nqg~`-+(-76= za<`RA&(qDB^S!nIS^od5|Nk$KPXD8(qSB!f`M*{E?A^&yOW$08V^iNPK!%UNJ-@xmz>`pG2_%4I3QWk4UdtwP!GH$C%mo2K|$Ap=_)Y!#O($1@ohsUtR1k%wI*) z4*X&g==oWh`j{uP=HFm;Ye>0>UbDdtSp^~MaQ!L9I#)Ga?q}{@T#|qec*FkMLDenm zj^sCgk!^O^3o|vG!~2$$$7`C#4Ry zdQ!tui+J1*HyavK+4{`r+zvYHj9IsRt~@uEBOreWS8~2rXAR3!|7aTdr+x4|>@$Az z)b1t$gSB~6USxpfLmy^|_J_eNt*PI=ScO1SVH895N#`ef%IOh&o-2GIjK1s-JzkyZ z@r7O%hChz}kMHCM@Wqi^R-9t&%Fh^#9dVB0%ej@$=OjXA%XZdzCXf}c>SW26_z-Te z5b{}XWg&rELM=N*%aimp)k04t2c+`WAS>ZFIPWKvtyOI))HzpRA!T!b{tv?4NzF1v zNlP%#{&p@lFFEKvcroMAsI)mq?&`!e%l+-y&j9ZqhN}oG&dB=Pw09r+Q%m0cMujS# zs$a7!9VH`CC7k{!bV(J`rm%Jpj6&nLtWhPcy$onn$8G#ZdD9hxO<9k67Ya>K_7W~3 z&KYf14fq<{qHA7u6;>AOcomhdg?ianjr9uINt}*7w?g%z9{Q`(qRo@hDwSpGmxz&h&>%G%T(URL~=c>C{>y$K?+wLFp zy*M1@FTUKYV>8DeDIAIKM+!T5c-k&C4?Y~y^E zQCIc-=9~DiPtfVZB=_c3`qH3h|NXd^BcOQG`funSe)i5!NoA_r{b6PwzSDIXG+!(F z9CqJgo&~#7^VZHWj{u23q+NDCHn}GeWDC*(SW%{f4WMtP3l2jsO7*M)EX)#NLlsNnU4q@#jn0r#rsWsf^ngE0&ambG1f;Rj zfOk#_>1|25Z%?iI{0Yv8)DQfk>m1td?~}m0N%^k^u%EuUCc#ItmlY|epQ3YLWehYw zRU0qpPb#X&WU*UOU8et(s8x~WyYWYsgJCF+;U6@*nICY8)dk}IG+(#_Bz8zURd3HZ6qPE68U1%S{wL0 z;K{PDw2iRFIGG?(UiE9kT9?siuv4O{ z`dX2-eiXU3N)H2nT4V=AO^~J}sw+gr{&~qx%$$wlMv_JCWAMfcjYl}*Cfcf!adOY8 z8oLmJ{%49e+nLiVo#H9}wRk?UCzDz^>9TDxreVHzl~R*)?YU>Uu;J2eQ27O5`&X^8 z`94{)YWJQa#l0Fbz0N6B>j&8J;<%VuG6OYM9&QIdtueWjI3X;*dEtGiF@1AcvN4U> zG5SXIEXxB>)!mtQOztJLyeF78S*kLiU-!>PtQ_s~OMl~&y(hVVe$A5 zwo}E-DJ6${QP75?LsQ}Wl@MXwXMT4d>|?rD!g?jE>J^N*y;X}5FLe%d0_ zZ>eIBK6l@jkfw{p_YiDP;MS{jww{%j#?rk2z1J!HqE;Vd!TrCl_7UPef8;edI}wD6 zT&12Bxj&q}d4%$GHq+$~UYtWv`wI9k`89oKkCEK_E;-+O)(rhThjOM|kXDn{!W1Lo z`_?yQv=lp=-w()R<=0&c5%RWHY_fw@qb}uwFuPAGkl~@Kis}eE%MY@~6ZyWcF+llM zGyK`)(vn1F%%z=W7-Y=1$`w0Mv+-|#d};%JjCmw)Y1hOxwA|{}P%6LS4X`jQCGh`mR@=hGrr|cXa^Ipj;Mh)6mTqd1s_HmP0IxXT!w7YhoIHT>Hm#!;c@|L9OjV zsTlHE{Z;HWeM9^tPm-`|&nnl$%DRtNG1~?npUvgKPwKlaccEe4q!7YU3zykJnu6Sr z()LMXs_)^~u-ds7+wMff)RAJF?2?1H`_wDnt%MssYeB5;q~ojgVm6OHA6B>FG2erv z8&`|6<`=!EPKR^8Qlp5MiKwfxy4D`mN> ze$RKh_6*YJd4y0nnUZvwN%iY&^9xk@cM|5g#pZkc#N*(PH?^w&?ilTDMXFcd0`5!E zvgHS`=Lc|~1aO=L@L~eE*aP{90lc7qXY7GOs)3JH14T{(`K1D%tpvUT1-?F^1d4_S zJ#7yXkP3Q37bJlRQfv=mV-J3B8O*m5B%L3uW)S>|Jwy`|s6iK`sv0Z-3NcU(0knrG z5ChFXA@A9PUSdLI+(VU!!J1Mbw!~0VP^jZci2X|Nx0BF!24ObrAr>b=QtlyN4TAhn z!mQncJm~^m4MIafVLt_ewDUtO+e5w*!`(6A&H^F7i9s4t5&uBpNvh$nlTZjqTM5krNRRQ zqP)VR!|9@H>7qN_!+-)&_9s!^;gOvy5s~iEB&qP8{77&2NJMzZcsnJgSt_bYDzYU% zxQ#uuk3D*e7_*d5^?HW(^(WxICGf-mcmM((VStzIz%zFsm0;ZI3h=5OciJ#a%7I(IeGbFv+PP^?^sKBPrRBl<+qK^o%3fi=L9`la>-l4~p|hzAl~W zf=%(|NHgF7r5dJD+Cf08q-c(m;Epsldaz4cqHzTHT>)4xEe(cE0i~tf{Y0xs_1~Kv z+BYQ-TpEOch13;5YC9nHYEXhSv{ew=LV~nQL%UBQEgaDL2m?9u~v zEQmOvM=aB)Z$+eE38rs%AZR_)4>@2raqwH#Fji#xoLc&PS_TU^W8W(M0GqLdO~1yF z{sfHZ_sC#FX58(}d>RSkKZCz8%D7{cC3Z$Zh@52{31&V*W-@s~Z<8~aBeNcNW?e&O zsR(7fHOf}B&fsRqdZ(WK1e~s*o^uD6{YX9QJvqyWAqQXt*E>r$V94YK=X@8+{1cg> z*_i`a%alCJvbD~lCg&Q1Gk=|BzY)sejf9EHJ{s7lu4?ExCWR3jgTiET;exy{sW!Mg zuj*_YOf0@ScN~X0$7V6&KpL172rf|rA8?K<2+GelXw)NUk#@b4aT5MO%1ip4*ym}B-JI__S1R?CK z<4eW~bH;@H@tR55x}&JNSw_NvEPk)6E>XDt7*)4sgWuw+_vNZzmaS(tsi(57zcjA9 z@~XcHtzYq~IX|z*Md9mh>W~`sk3<^s7;EmyH4wcTdAo5NkUA2ofeG69{Gx7#i_*lt zQ7;N@xEo#nNRj&SbDHNnP0w#OE0{DZ$~7ySG%IN~zwd5Vu4&dnH>*OMb>&*VL^tbA zG;7y1t9dsYU$p3pw0x6mwGe6fjBYWsZ8e3q8f~-~cefgHxBangajI$kv(c*W-DZGp zbM$UgnP{_MYPXYX|6$u^deIhE(-xuGX2RVXqS+o~(iSV%;ZW1=Zqkut(r&xak^pT> zsp*I@X|-eOd^gb+sM(%3(E$|c47Y91mTU99Xe;4vFOTl5gmwVB+fvc3n2pwK?~Xd# zwrY{?CUj@~Msr?wXU0WKv2A$hq z`$V^gNq4(<*C=;4e4}$*uIC$5&uUHkM08J~N$>VV*VpdmLCuc!?!J9=-)VH;fo9)| zNN4m#^Kb9|`RF!^ZAT-z=bC8$do8~Tjc^o-aQjyc2(TW*d50E1#NW0pKb^~tf&OUlS+W}>0!m@!~1 z&TdSLhm`0u99c-z=oxYL8IFaGCDoFwFUP!1iJ%xF1UC4hhv*VR2451Pc0+kQGC)39C5 za81oV=$+xzZNYhn=RB-CTZ>Bevj)A3mi9|OS(dcy=N#Zm=Dza|z4Jd<=3IQ2CB>FiwH7{4Ej#+oa>M67 z!56)Km&2xJ|H7B;%~rJDuJ{rbZQiaX*e^$DEt~T$#h9(y#jg6>uX?boq!N}Q;EQth zYo1rjc15dETPw~*Ymu=lreoE9g^wb)ZcRe1yp1(Eo(rmqUYZXOU$BC_| zX{{&qE?E06wXm#v#cpKwE)jaydSaI`TkCCClr_lKMzPkyFT!R%VRn&sZSrchKx&4e~pJQcfViQxxl=T=7}#gYz7Pvoh`T#Jbab%2A2m zxh?A<`}A?8_GumBEcL;$x%gQb@PZ(If%ZE~D?ax#Km4a~+GV~!;Bb~qxxh@HHc|H6 zr%$^c9Dw~UQFWJv+81rCXS1vqqLfQ~-BtO63xCArGVA4T-}xPXYGHqB5h^+n5%$24 z(BROpi13J@*qFfR$oRMHel`=(zy zovs-UKHD3VkJ?hVeq!aA+8Fh4+NIlFhcC~UrR{4I#}K*u&z%68+P1*=q0B1r*2MY> z!9gYs*vlTO5v#8S>c#3goFmp>3iVKdU)NkjNV(s7tO4Wq?2M}o5Cj-*7;S=fEshOA zR*4$dm{ROvUamG%xL_tSW6}U$Nl=@91T;nC11o-iIVyVrfkd) zTCp;^tOy|_kuOFV$Nn=$AQJO9;&sZ&eDs^!r*m;Hw!)vpO1vcfj2EV{dJ?7ap0tq6 z$SwUVM*Vt+MS_`;bas-svPV|3POQi8G~?f^KOx4hg1He+Wd*s3Hl1{TfJS-+zv6vc zPoKiwr?7wECbub(IdB)9f_!kmUjBR*KY_z4E8_QA9xSr#G&@i5y^H`jB^I{|akh>W z%Cn3luOVY|8P>u>e^~#{$kmgX&-q>k{#pFbm2({(rtG<%nb0UCQ0%{Cy`F&~7}*we z@Of>ND_)V&XwN_+n~KjVorUQWZ*B6cld7ymQl{;rwlHl34K#}2YWxE+4CX@P&u6AfCda`&ZT1MOY69e-L@gNcAvwx8%1Z7lB4zc=_Cpt~&s ze%?;){1DB(PSK!^za967qF?lIjB~&06}Lf`cgh2qUiI^|$-VCTNE=hp&Ij}^A9&|* zQQrSqo3gn#_=z9j(y6f@T|OkJYv(fjwpz}$*U$|nLH2F zPNMuTS4g8 z*^hOlRh6~Mk}58;d477R>F^~aLO$dOXmhA*6zwIaHK()t2zKjo?j^NOJbh_=+71xg zO{Mgp7x?Z-1MKzoQ<+V2g#|e}|JawOPJZBL{o~PYdtWDX?jl##!Aiq|w>)vGJLipp zBK1xGhcvgSsQ;rn>+`>UmxlID{<~}7{y>SO^cyktN^Fsz!Z|B4?p*RKQG*8}SYBt{ zuFO{vJ?jgL{gUzYsnv(io}c0vlCp#*1vE?}KL^UZ&VF^TK+D;40CxX%j);%dCt;Z{ zAeMXC9JPWvKGwsCxx4w2iv_wNGG8l16AVI93rmc^c1>r(P||YE zpXa+=-&k995hfykL^J5S&vJF^ljR&`FE#ppNMM3%Omc!F)Mn{{&Ip#)JegbEJxud2 zn`wDVB~DMii5|H%m~51YeU1juNG3!+&?*uC#q@)z8q~`4yEL5I8}PtyA1IZ=52P$x zX)KhZt z7czUXBsy-8d`GVQ`90`wIh(Xt7v5j7h0t&ET~2M!Tb~4rN-xtK@8@mB*c(6QTwOS- z%9445_WY|cfm4?$nX$72&{~^mu}an^x^Da%=UU6YI;ur3+9L6I>raW5!=-Nzy(F2Z zwZlg7aM3NN5b{K|FB>s4R}|&Lr32_Ys{wwkECxo|rV@;5aHB25iUs7(6@dDpjN{Y%?C~UGp>*Q}K?)KKk64 zAn;@-dER}QG0L${jQ1cR75eM3-~ZTltTQ8%sm9x4Y`ve@ekMuvpA#Rh51@s6;6^&Q z!&M7^b%cea7FlZkPV9}@!bPBBfB&~XvGlE2T7V?IpM~OBmuK;OSt{~N`rL5c_I^de z9n*=@p|l;d`b_YIn8Aem1t7pp0=2-MCTIcJHlY z6x+mNLgi{JpwP)y(yzAFL2A#>bI&EwZE`PGvd*FQ!rx~6bUN&+Ij3)L;=595L#G;m8*^e?ap1`J5w7-q)*iUT_W9w8 z&xS-`i++HpWzY-a-)CWd0(pLW$A85P{Dy9r-=uPekNpN^yA}pJ7yWTZ>3iw4d6+IK zF%1XXkGcJm{0*vhSG5R1ySW;jctk9O==1-Mk?=Bl<{HE1p_@tx1s^+GoczYxj#B=i=kwQvEPrOt`<4W*pJw zbNjEqpr7B|Llc%m{V*QssV)im;pb00LUob=yFaU4`P_}ywU zt*QZl-bUsmh@L&zQaX4uHL&7YD(BOb9hH;;y;O-b-_O$4EFi1vCrMlz`dN|u?}HNO^aFQV{UZg_yy%nf>IXpulip!cR8|vNu7P*; zQye@}Qmj%(TB6`5E=c~w=LITF266XJ6X5xA7!OM1SE=~N*o3EP5Qqx!W<_+EMSLGo zqkC18AQ=0AK9=hgGQtrTovYc5^?Z^RLX?hlO-j&e1MXTTbfm>MS^=}!p>C>icUKdZ zBcNOb(6IJ!kq*e7N8Fx!!kPyn+2B2^2hd00+W^PUA&+S63jFE)bP5Tv+L5l~n(pu? zbeO|+K{{?pEow3?j0+dGVu)a6(0r{1Uj7{3 zxSsZ|BdMk>1-S}-;+`pk{Q5>H=tLRx+YqeenaSRsEX@gtPzz>j1A9g!C9kGtspY(- z%YL>NkVDE2z@}*;Q{=&5)yS;NupAmmibGUE4qte7aY6PcnXJgw>}ad(SW;@HtNurF ziV0_yHz=;Di%Tki6DW^tjkL`t%Ktct(ay zvuAOYoCu!Pm~@P5CIjk$bp`_iv{^l*Au{fB8mJK1>Macv?GL)**8*+JNvySIH5Y7i#1;!%NT!efc z;Z0*AOM&1VpR+6wIQxBM{xf`8T1V@#e<#QL}=YRwMkWG8%1(Fgj{iX)N zup{Txko(DqJWf=#Oi?Z!nra-?C{);TP`w|4>L+EKx1&P3swX<*#_50F!lD_$nQyuK??!UwA-{y)^QmMxoK1xIJ~uML{u;5!Z5tQyEL>;KaUd!_9FP zl2$QOI6V1`QdF|8gkdZsSpUqCjSBu(1H)r*vL#PEy)@Px>5TIk7_9o#Bj zzD&<1_k(ejk%qO6ak=GMmG5b7LTAA^KKq-Ey#z8(2wy2;Ot^oZI(MG@)~iY$RAnJt zu`ioyvR?Vws_tuK9hDqmel+)bP0kyxJV{7t=&3{b(@Hs1fs$9n45aq)IKknZa2H*7 z^P-ZDyOMdMj&-9{(-?dqo5I3Gy=K$!L%q>3^0N~o^2i0^_@^2nQv>S4B&=5_8^a^V zaY!NjyA5QgO&r#^CJcp&=!))MZ*CC&hvLEzWU*!IO=aYo{_yG+53H$XOAIQWnG`uD zLuuwTY6e8N^m5^AHQa}Y5Z#SdbEY;+x{oW?g;ie4CNYomRyQd2mv^L}T!>a5<*wTh>@>Qtwp~nejn`~DcZJI+QC-xU zoxz=5z0k%1;jBrGI%Th~FQElrAPr?E-Fv9|o09dPk=?>f)jFKL8PK|;w(cVDq>YWP zEfL7RGBv|<>f4IccND3wCi*V8`>#a$FPZu&a{V`W`me+Kuf_CJ)%IV%?5ByL^#3Q{ z&uBM5|34IKI>0_Tz{5OngXe#6w*N6;;5PH%9n%56%RaWA{wJ4%515Apdj`a62bp<> zM12OuV+QZ^55ATkViO(UWgg}%9C}kb^r~=BiDyWIXZWM&kb>Q?dd$#W`4KU|2#4qh zz;sZ>ZqS5h#Kdk$&1c9AHmDUdtmHE)CqH0RIAZEE;t(^+RXF+*FlJyk;?6Vn{&MsO zZ0HwY)b4Va!F1#s^N5$-s9(&mPa*Lu4>4SxXm~l|3?PR2jB1J!Q|(4#0i$lFME^-r zA~Q(2O+PHOdcVN((R8zqi>%+yx4PA5u&+jI zZ?)Fm8m-+`n!Bnrx0PvZE7!Q)Z+NTE@K(R!nO40sZF(n~bq_b_9H`UYU#q>pPJ3UC z_UeU>J7qcy%%`ks9)BNcS^GDOn z?oKkjHNoWO1e2?M#vd12e^_AscAnLnc~-CISiYWX`D%{k^H~<37unpMYJYdSv=Om2vbAM@`Qp{{SI=yP zj6WN*eEt0G$9EPX6FU%)-ho>hWTW!yzXBIo73<0umM-=@eG&niY^` zlG(|vuCl_x(X^Fob@=i{8+M5vWf7Bz=#aHGTNA;fZQyfbfueI8Z^639n`(DI%w^-^ zl`=@!u)r~Xf920-xd$Ab+S&PJY%K0H8a_J8uN3^_!K1_NV$*e#*Y*6|)XpiW=9H`*`Xx7W%v@7{XDma1?v0a%(K6rI&1!a YpWXKgmku8Vj|K)Vje`mzEKCg608Q#dYybcN literal 0 HcmV?d00001 diff --git a/android/doc/serial/ByteSize.html b/android/doc/serial/ByteSize.html new file mode 100644 index 0000000..9fb9165 --- /dev/null +++ b/android/doc/serial/ByteSize.html @@ -0,0 +1,393 @@ + + + + + +ByteSize + + + + + + + + + + + +
+
serial
+

Enum ByteSize

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Enum<ByteSize>
    • +
    • +
        +
      • serial.ByteSize
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ByteSize>
    +
    +
    +
    +
    public enum ByteSize
    +extends java.lang.Enum<ByteSize>
    +
    Enumeration defines the possible bytesizes for the serial port.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      EightBits +
      Use 8 bits in a byte.
      +
      FiveBits +
      Use 5 bits in a byte.
      +
      SevenBits +
      Use 7 bits in a byte.
      +
      SixBits +
      Use 6 bits in a byte.
      +
      +
    • +
    + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      intbitLength +
      Number of bits in a single byte.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static ByteSizevalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ByteSize[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        FiveBits

        +
        public static final ByteSize FiveBits
        +
        Use 5 bits in a byte.
        +
      • +
      + + + +
        +
      • +

        SixBits

        +
        public static final ByteSize SixBits
        +
        Use 6 bits in a byte.
        +
      • +
      + + + +
        +
      • +

        SevenBits

        +
        public static final ByteSize SevenBits
        +
        Use 7 bits in a byte.
        +
      • +
      + + + +
        +
      • +

        EightBits

        +
        public static final ByteSize EightBits
        +
        Use 8 bits in a byte. + + This is the default.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        bitLength

        +
        public final int bitLength
        +
        Number of bits in a single byte.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ByteSize[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ByteSize c : ByteSize.values())
        +    System.out.println(c);
        +
        +
        Returns:
        an array containing the constants of this enum type, in the order they are declared
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ByteSize valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        Parameters:
        name - the name of the enum constant to be returned.
        +
        Returns:
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/FlowControl.html b/android/doc/serial/FlowControl.html new file mode 100644 index 0000000..f657c6c --- /dev/null +++ b/android/doc/serial/FlowControl.html @@ -0,0 +1,339 @@ + + + + + +FlowControl + + + + + + + + + + + +
+
serial
+

Enum FlowControl

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Enum<FlowControl>
    • +
    • +
        +
      • serial.FlowControl
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<FlowControl>
    +
    +
    +
    +
    public enum FlowControl
    +extends java.lang.Enum<FlowControl>
    +
    Enumeration defines the possible flowcontrol types for the serial port.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      Hardware +
      Use hardware flow control.
      +
      None +
      Use none flow control.
      +
      Software +
      Use software flow control.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static FlowControlvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static FlowControl[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        None

        +
        public static final FlowControl None
        +
        Use none flow control. + + This is the default.
        +
      • +
      + + + +
        +
      • +

        Software

        +
        public static final FlowControl Software
        +
        Use software flow control.
        +
      • +
      + + + +
        +
      • +

        Hardware

        +
        public static final FlowControl Hardware
        +
        Use hardware flow control.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static FlowControl[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (FlowControl c : FlowControl.values())
        +    System.out.println(c);
        +
        +
        Returns:
        an array containing the constants of this enum type, in the order they are declared
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static FlowControl valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        Parameters:
        name - the name of the enum constant to be returned.
        +
        Returns:
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/Log.html b/android/doc/serial/Log.html new file mode 100644 index 0000000..00db1ac --- /dev/null +++ b/android/doc/serial/Log.html @@ -0,0 +1,1114 @@ + + + + + +Log + + + + + + + + + + + +
+
serial
+

Class Log

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • serial.Log
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public final class Log
    +extends java.lang.Object
    +
    Log replacement for android.util.Log.
    +
  • +
+
+
+
    +
  • + + + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static intd(java.lang.String msg) +
      Send a DEBUG log message.
      +
      static intd(java.lang.String tag, + java.lang.String msg) +
      Send a DEBUG log message.
      +
      static intd(java.lang.String tag, + java.lang.String format, + java.lang.Object... args) +
      Send a DEBUG log message.
      +
      static intd(java.lang.String tag, + java.lang.String msg, + java.lang.Throwable tr) +
      Send a DEBUG log message and log the exception.
      +
      static inte(java.lang.String msg) +
      Send an ERROR log message.
      +
      static inte(java.lang.String tag, + java.lang.String msg) +
      Send an ERROR log message.
      +
      static inte(java.lang.String tag, + java.lang.String format, + java.lang.Object... args) +
      Send an ERROR log message.
      +
      static inte(java.lang.String tag, + java.lang.String msg, + java.lang.Throwable tr) +
      Send a ERROR log message and log the exception.
      +
      static inte(java.lang.String msg, + java.lang.Throwable tr) +
      Send a ERROR log message and log the exception.
      +
      static inte(java.lang.Throwable tr) +
      Send an ERROR log message.
      +
      static java.lang.StringgetApplicationTag() +
      Gets the default tag of the application.
      +
      static java.lang.StackTraceElementgetCallerFrame() +
      Return the StackTraceElement for current method's caller.
      +
      static java.lang.StackTraceElementgetCurrentFrame() +
      Return the StackTraceElement for current method.
      +
      static intgetFilterLevel() +
      Gets the filter level of logs.
      +
      static java.lang.StackTraceElementgetStackFrameAt(int offset) +
      Return specified StackTraceElement on the call stack, relative to current method.
      +
      static java.lang.StringgetStackTraceString(java.lang.Throwable tr) +
      Handy function to get a loggable stack trace from a Throwable
      +
      static inti(java.lang.String msg) +
      Send an INFO log message.
      +
      static inti(java.lang.String tag, + java.lang.String msg) +
      Send an INFO log message.
      +
      static inti(java.lang.String tag, + java.lang.String format, + java.lang.Object... args) +
      Send an INFO log message.
      +
      static inti(java.lang.String tag, + java.lang.String msg, + java.lang.Throwable tr) +
      Send a INFO log message and log the exception.
      +
      static booleanisLoggable(java.lang.String tag, + int level) +
      Checks to see whether or not a log for the specified tag is loggable at + the specified level.
      +
      static voidmyAssert(boolean condition, + java.lang.String message) 
      static intprintln(int priority, + java.lang.String tag, + java.lang.String msg) +
      Low-level logging call.
      +
      static voidsetApplicationTag(java.lang.String tag) +
      Set the default tag for this application.
      +
      static voidsetFilterLevel(int level) +
      Sets the filter level of logs.
      +
      static intv(java.lang.String msg) +
      Send a VERBOSE log message.
      +
      static intv(java.lang.String tag, + java.lang.String msg) +
      Send a VERBOSE log message.
      +
      static intv(java.lang.String tag, + java.lang.String format, + java.lang.Object... args) +
      Send a VERBOSE log message.
      +
      static intv(java.lang.String tag, + java.lang.String msg, + java.lang.Throwable tr) +
      Send a VERBOSE log message and log the exception.
      +
      static intw(java.lang.String msg) +
      Send a WARN log message.
      +
      static intw(java.lang.String tag, + java.lang.String msg) +
      Send a WARN log message.
      +
      static intw(java.lang.String tag, + java.lang.String format, + java.lang.Object... args) +
      Send a WARN log message.
      +
      static intw(java.lang.String tag, + java.lang.String msg, + java.lang.Throwable tr) +
      Send a WARN log message and log the exception.
      +
      static intw(java.lang.String tag, + java.lang.Throwable tr) 
      static intw(java.lang.Throwable tr) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + + + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        setApplicationTag

        +
        public static void setApplicationTag(java.lang.String tag)
        +
        Set the default tag for this application.
        +
        Parameters:
        tag - The tag of the application.
        +
      • +
      + + + +
        +
      • +

        getApplicationTag

        +
        public static java.lang.String getApplicationTag()
        +
        Gets the default tag of the application.
        +
        Returns:
        The default tag of the application.
        +
      • +
      + + + +
        +
      • +

        setFilterLevel

        +
        public static void setFilterLevel(int level)
        +
        Sets the filter level of logs. Only levels greater or equals this level + will be output to LogCat.
        +
        Parameters:
        level - The filter level.
        +
      • +
      + + + +
        +
      • +

        getFilterLevel

        +
        public static int getFilterLevel()
        +
        Gets the filter level of logs. Only levels greater or equals this level + will be output to LogCat.
        +
        Returns:
        Current filter level.
        +
      • +
      + + + +
        +
      • +

        v

        +
        public static int v(java.lang.String msg)
        +
        Send a VERBOSE log message.
        +
        Parameters:
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        v

        +
        public static int v(java.lang.String tag,
        +    java.lang.String msg)
        +
        Send a VERBOSE log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        v

        +
        public static int v(java.lang.String tag,
        +    java.lang.String format,
        +    java.lang.Object... args)
        +
        Send a VERBOSE log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        format - The format of the message you would like logged.
        args - The arguments used to format the message.
        +
      • +
      + + + +
        +
      • +

        v

        +
        public static int v(java.lang.String tag,
        +    java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a VERBOSE log message and log the exception.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        d

        +
        public static int d(java.lang.String msg)
        +
        Send a DEBUG log message.
        +
        Parameters:
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        d

        +
        public static int d(java.lang.String tag,
        +    java.lang.String msg)
        +
        Send a DEBUG log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        d

        +
        public static int d(java.lang.String tag,
        +    java.lang.String format,
        +    java.lang.Object... args)
        +
        Send a DEBUG log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        format - The format of the message you would like logged.
        args - The arguments used to format the message.
        +
      • +
      + + + +
        +
      • +

        d

        +
        public static int d(java.lang.String tag,
        +    java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a DEBUG log message and log the exception.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        i

        +
        public static int i(java.lang.String msg)
        +
        Send an INFO log message.
        +
        Parameters:
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        i

        +
        public static int i(java.lang.String tag,
        +    java.lang.String msg)
        +
        Send an INFO log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        i

        +
        public static int i(java.lang.String tag,
        +    java.lang.String format,
        +    java.lang.Object... args)
        +
        Send an INFO log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        format - The format of the message you would like logged.
        args - The arguments used to format the message.
        +
      • +
      + + + +
        +
      • +

        i

        +
        public static int i(java.lang.String tag,
        +    java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a INFO log message and log the exception.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.String msg)
        +
        Send a WARN log message.
        +
        Parameters:
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.String tag,
        +    java.lang.String msg)
        +
        Send a WARN log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.String tag,
        +    java.lang.String format,
        +    java.lang.Object... args)
        +
        Send a WARN log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        format - The format of the message you would like logged.
        args - The arguments used to format the message.
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.String tag,
        +    java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a WARN log message and log the exception.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        isLoggable

        +
        public static boolean isLoggable(java.lang.String tag,
        +                 int level)
        +
        Checks to see whether or not a log for the specified tag is loggable at + the specified level. The default level of any tag is set to INFO. This + means that any level above and including INFO will be logged. Before you + make any calls to a logging method you should check to see if your tag + should be logged. You can change the default level by setting a system + property: 'setprop log.tag.<YOUR_LOG_TAG> <LEVEL>' Where level is + either VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, or SUPPRESS. SUPRESS + will turn off all logging for your tag. You can also create a local.prop + file that with the following in it: + 'log.tag.<YOUR_LOG_TAG>=<LEVEL>' and place that in + /data/local.prop.
        +
        Parameters:
        tag - The tag to check.
        level - The level to check.
        +
        Returns:
        Whether or not that this is allowed to be logged.
        +
        Throws:
        +
        java.lang.IllegalArgumentException - is thrown if the tag.length() > 23.
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.String tag,
        +    java.lang.Throwable tr)
        +
      • +
      + + + +
        +
      • +

        w

        +
        public static int w(java.lang.Throwable tr)
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.String tag,
        +    java.lang.String format,
        +    java.lang.Object... args)
        +
        Send an ERROR log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        format - The format of the message you would like logged.
        args - The arguments used to format the message.
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.String msg)
        +
        Send an ERROR log message.
        +
        Parameters:
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.Throwable tr)
        +
        Send an ERROR log message.
        +
        Parameters:
        tr - The throwable you would like logged.
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.String tag,
        +    java.lang.String msg)
        +
        Send an ERROR log message.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a ERROR log message and log the exception.
        +
        Parameters:
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        e

        +
        public static int e(java.lang.String tag,
        +    java.lang.String msg,
        +    java.lang.Throwable tr)
        +
        Send a ERROR log message and log the exception.
        +
        Parameters:
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        getStackTraceString

        +
        public static java.lang.String getStackTraceString(java.lang.Throwable tr)
        +
        Handy function to get a loggable stack trace from a Throwable
        +
        Parameters:
        tr - An exception to log
        +
      • +
      + + + +
        +
      • +

        println

        +
        public static int println(int priority,
        +          java.lang.String tag,
        +          java.lang.String msg)
        +
        Low-level logging call.
        +
        Parameters:
        priority - The priority/type of this log message
        tag - Used to identify the source of a log message. It usually + identifies the class or activity where the log call occurs.
        msg - The message you would like logged.
        +
        Returns:
        The number of bytes written.
        +
      • +
      + + + +
        +
      • +

        myAssert

        +
        public static void myAssert(boolean condition,
        +            java.lang.String message)
        +
      • +
      + + + +
        +
      • +

        getCallerFrame

        +
        public static java.lang.StackTraceElement getCallerFrame()
        +
        Return the StackTraceElement for current method's caller. + +

        For example:

        +
        + void foo() {
        +     bar();
        + }
        +
        + void bar() {
        +     StackTraceElement caller = getCallerFrame();
        +
        +     // Will print "foo".
        +     System.println(caller.getMethodName());
        + }
        + 
        + +

        Might be null. If you call this from static void main(String[]).

        +
        Returns:
        the stack frame of current method's caller.
        +
      • +
      + + + +
        +
      • +

        getCurrentFrame

        +
        public static java.lang.StackTraceElement getCurrentFrame()
        +
        Return the StackTraceElement for current method. + +

        For example:

        +
        + void foo() {
        +     bar();
        + }
        +
        + void bar() {
        +     StackTraceElement current = getCurrentFrame();
        +
        +     // Will print "bar".
        +     System.println(current.getMethodName());
        + }
        + 
        +
        Returns:
        the stack frame of current method's caller.
        +
      • +
      + + + +
        +
      • +

        getStackFrameAt

        +
        public static java.lang.StackTraceElement getStackFrameAt(int offset)
        +
        Return specified StackTraceElement on the call stack, relative to current method. + +

        For example:

        +
        + void main() {
        +     stub();
        + }
        +
        + void stub() {
        +     foo();
        + }
        + void foo() {
        +     bar();
        + }
        +
        + void bar() {
        +     // Will print "bar"
        +     System.println(getStackFrameAt(0).getMethodName());
        +     // Will print "foo"
        +     System.println(getStackFrameAt(1).getMethodName());
        +     // Will print "stub"
        +     System.println(getStackFrameAt(2).getMethodName());
        +     // Will print "main"
        +     System.println(getStackFrameAt(3).getMethodName());
        +     // Will print "null"
        +     System.println(getStackFrameAt(4));
        +     System.println(getStackFrameAt(-1));
        + }
        + 
        +
        Parameters:
        offset - the offset of the call stack from current method. 0 means current methods, 1 means caller, etc.
        +
        Returns:
        the stack frame of current method's caller.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/Parity.html b/android/doc/serial/Parity.html new file mode 100644 index 0000000..1cab025 --- /dev/null +++ b/android/doc/serial/Parity.html @@ -0,0 +1,369 @@ + + + + + +Parity + + + + + + + + + + + +
+
serial
+

Enum Parity

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Enum<Parity>
    • +
    • +
        +
      • serial.Parity
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<Parity>
    +
    +
    +
    +
    public enum Parity
    +extends java.lang.Enum<Parity>
    +
    Enumeration defines the possible parity types for the serial port.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      Even +
      Use even parity type
      +
      Mark +
      Use mark parity type.
      +
      None +
      Use none parity type.
      +
      Odd +
      Use odd parity types
      +
      Space +
      Use space parity type.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static ParityvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static Parity[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        None

        +
        public static final Parity None
        +
        Use none parity type. + + This is the default.
        +
      • +
      + + + +
        +
      • +

        Odd

        +
        public static final Parity Odd
        +
        Use odd parity types
        +
      • +
      + + + +
        +
      • +

        Even

        +
        public static final Parity Even
        +
        Use even parity type
        +
      • +
      + + + +
        +
      • +

        Mark

        +
        public static final Parity Mark
        +
        Use mark parity type.
        +
      • +
      + + + +
        +
      • +

        Space

        +
        public static final Parity Space
        +
        Use space parity type.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static Parity[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (Parity c : Parity.values())
        +    System.out.println(c);
        +
        +
        Returns:
        an array containing the constants of this enum type, in the order they are declared
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static Parity valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        Parameters:
        name - the name of the enum constant to be returned.
        +
        Returns:
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/PortInfo.html b/android/doc/serial/PortInfo.html new file mode 100644 index 0000000..911c716 --- /dev/null +++ b/android/doc/serial/PortInfo.html @@ -0,0 +1,294 @@ + + + + + +PortInfo + + + + + + + + + + + +
+
serial
+

Class PortInfo

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • serial.PortInfo
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public final class PortInfo
    +extends java.lang.Object
    +
    Created by chzhong on 1/20/16.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      java.lang.Stringdescription +
      Human readable description of serial device if available.
      +
      java.lang.StringhardwareId +
      Hardware ID (e.g.
      +
      java.lang.Stringport +
      Address of the serial port (this can be passed to the constructor of Serial).
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      java.lang.StringtoString() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        port

        +
        public final java.lang.String port
        +
        Address of the serial port (this can be passed to the constructor of Serial).
        +
      • +
      + + + +
        +
      • +

        description

        +
        public final java.lang.String description
        +
        Human readable description of serial device if available.
        +
      • +
      + + + +
        +
      • +

        hardwareId

        +
        public final java.lang.String hardwareId
        +
        Hardware ID (e.g. VID:PID of USB serial devices) or "n/a" if not available.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/PortNotOpenedException.html b/android/doc/serial/PortNotOpenedException.html new file mode 100644 index 0000000..e9ae080 --- /dev/null +++ b/android/doc/serial/PortNotOpenedException.html @@ -0,0 +1,217 @@ + + + + + +PortNotOpenedException + + + + + + + + + + + +
+
serial
+

Class PortNotOpenedException

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Throwable
    • +
    • +
        +
      • java.lang.Exception
      • +
      • +
          +
        • java.lang.RuntimeException
        • +
        • +
            +
          • java.lang.IllegalStateException
          • +
          • +
              +
            • serial.PortNotOpenedException
            • +
            +
          • +
          +
        • +
        +
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    +
    public class PortNotOpenedException
    +extends java.lang.IllegalStateException
    +
    Created by chzhong on 1/20/16.
    +
    See Also:
    Serialized Form
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/Serial.Builder.html b/android/doc/serial/Serial.Builder.html new file mode 100644 index 0000000..a69132a --- /dev/null +++ b/android/doc/serial/Serial.Builder.html @@ -0,0 +1,399 @@ + + + + + +Serial.Builder + + + + + + + + + + + +
+
serial
+

Class Serial.Builder

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • serial.Serial.Builder
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    Serial
    +
    +
    +
    +
    public static class Serial.Builder
    +extends java.lang.Object
    +
    Builder for Serial.
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + + + diff --git a/android/doc/serial/Serial.html b/android/doc/serial/Serial.html new file mode 100644 index 0000000..8f6928c --- /dev/null +++ b/android/doc/serial/Serial.html @@ -0,0 +1,1759 @@ + + + + + +Serial + + + + + + + + + + + +
+
serial
+

Class Serial

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • serial.Serial
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Closeable, java.lang.AutoCloseable
    +
    +
    +
    +
    public class Serial
    +extends java.lang.Object
    +implements java.io.Closeable
    +
    Serial Port. + + Created by chzhong on 1/20/16.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      + + + + + + + + + + +
      Nested Classes 
      Modifier and TypeClass and Description
      static class Serial.Builder +
      Builder for Serial.
      +
      +
    • +
    + + + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      intavailable() +
      Return the number of characters in the buffer.
      +
      voidclose() +
      Closes the serial port.
      +
      protected voidfinalize() 
      voidflush() +
      Flush the input and output buffers
      +
      voidflushInput() +
      Flush only the input buffer
      +
      voidflushOutput() +
      Flush only the output buffer
      +
      intgetBaudrate() +
      Gets the baudrate for the serial port.
      +
      ByteSizegetBytesize() +
      Gets the bytesize for the serial port.
      +
      booleangetCD() +
      Returns the current status of the CD line.
      +
      booleangetCTS() 
      booleangetDSR() +
      Returns the current status of the DSR line.
      +
      FlowControlgetFlowcontrol() +
      Gets the flow control for the serial port.
      +
      ParitygetParity() +
      Gets the parity for the serial port.
      +
      java.lang.StringgetPort() +
      Gets the serial port identifier.
      +
      booleangetRI() +
      Returns the current status of the RI line.
      +
      StopbitsgetStopbits() +
      Gets the stopbits for the serial port.
      +
      TimeoutgetTimeout() +
      Gets the timeout for reads in seconds.
      +
      booleanisOpen() +
      Gets the open status of the serial port.
      +
      booleanisValid() +
      Determine whether this instance has a valid port.
      +
      static PortInfo[]listPorts() +
      List available ports on this device.
      +
      voidopen() +
      Opens the serial port as long as the port is set and the port isn't + already open.
      +
      byte[]read() +
      Read all data available from the serial port.
      +
      intread(byte[] buffer, + int offset, + int size) +
      Read a given amount of bytes from the serial port into a given buffer.
      +
      intread(java.nio.ByteBuffer buffer, + int size) +
      Read a given amount of bytes from the serial port into a give buffer.
      +
      java.lang.Stringread(int size, + java.nio.charset.Charset charset) +
      Read a given amount of bytes from the serial port and return a string + containing the data.
      +
      intread(java.lang.StringBuilder buffer, + int size, + java.nio.charset.Charset charset) +
      Read a given amount of bytes from the serial port into a give buffer.
      +
      java.lang.Stringreadline(int size, + java.lang.String eol) +
      Reads in a line or until a given delimiter has been processed.
      +
      intreadline(java.lang.StringBuilder buffer, + int size, + java.lang.String eol) +
      Reads in a line or until a given delimiter has been processed.
      +
      java.lang.String[]readlines(int size, + java.lang.String eol) +
      Reads in multiple lines until the serial port times out.
      +
      voidsendBreak(int duration) +
      Sends the RS-232 break signal.
      +
      voidsetBaudrate(int baudrate) +
      Sets the baudrate for the serial port.
      +
      voidsetBreak() +
      Set the break condition to true level.
      +
      voidsetBreak(boolean level) +
      Set the break condition to a given level.
      +
      voidsetBytesize(ByteSize bytesize) +
      Sets the bytesize for the serial port.
      +
      voidsetDTR() +
      Set the DTR handshaking line to the given level.
      +
      voidsetDTR(boolean level) +
      Set the DTR handshaking line to the given level.
      +
      voidsetFlowcontrol(FlowControl flowcontrol) +
      Sets the flow control for the serial port.
      +
      voidsetParity(Parity parity) +
      Sets the parity for the serial port.
      +
      voidsetPort(java.lang.String port) +
      Sets the serial port identifier.
      +
      voidsetRTS() +
      Set the RTS handshaking line to the true level.
      +
      voidsetRTS(boolean level) +
      Set the RTS handshaking line to the given level.
      +
      voidsetStopbits(Stopbits stopbits) +
      Sets the stopbits for the serial port.
      +
      voidsetTimeout(int inter_byte_timeout, + int read_timeout_constant, + int read_timeout_multiplier, + int write_timeout_constant, + int write_timeout_multiplier) +
      Sets the timeout for reads and writes.
      +
      voidsetTimeout(Timeout timeout) +
      Sets the timeout for reads and writes using the Timeout struct.
      +
      voidwaitByteTimes(int count) +
      Block for a period of time corresponding to the transmission time of + count characters at present serial settings.
      +
      booleanwaitForChange() +
      Blocks until CTS, DSR, RI, CD changes or something interrupts it.
      +
      booleanwaitReadable() +
      Block until there is serial data to read or read_timeout_constant + number of milliseconds have elapsed.
      +
      intwrite(byte[] data, + int size) +
      Write a string to the serial port.
      +
      intwrite(java.lang.String s) +
      Write a string to the serial port.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        BAUDRATE_110

        +
        public static final int BAUDRATE_110
        +
        Baudrate 110 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_300

        +
        public static final int BAUDRATE_300
        +
        Baudrate 300 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_600

        +
        public static final int BAUDRATE_600
        +
        Baudrate 600 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_1200

        +
        public static final int BAUDRATE_1200
        +
        Baudrate 1200 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_2400

        +
        public static final int BAUDRATE_2400
        +
        Baudrate 2400 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_4800

        +
        public static final int BAUDRATE_4800
        +
        Baudrate 4800 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_9600

        +
        public static final int BAUDRATE_9600
        +
        Baudrate 9600 bits/s. This is the default.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_14400

        +
        public static final int BAUDRATE_14400
        +
        Baudrate 14400 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_28800

        +
        public static final int BAUDRATE_28800
        +
        Baudrate 28800 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_38400

        +
        public static final int BAUDRATE_38400
        +
        Baudrate 38400 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_56000

        +
        public static final int BAUDRATE_56000
        +
        Baudrate 56000 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_57600

        +
        public static final int BAUDRATE_57600
        +
        Baudrate 57600 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_115200

        +
        public static final int BAUDRATE_115200
        +
        Baudrate 115200 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_128000

        +
        public static final int BAUDRATE_128000
        +
        Baudrate 128000 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_153600

        +
        public static final int BAUDRATE_153600
        +
        Baudrate 153600 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_230400

        +
        public static final int BAUDRATE_230400
        +
        Baudrate 230400 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_256000

        +
        public static final int BAUDRATE_256000
        +
        Baudrate 256000 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_460800

        +
        public static final int BAUDRATE_460800
        +
        Baudrate 460800 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        BAUDRATE_921600

        +
        public static final int BAUDRATE_921600
        +
        Baudrate 921600 bits/s.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        EOL_LF

        +
        public static final java.lang.String EOL_LF
        +
        End-of-line: line-feed (\n). This is the default.
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        EOL_CR

        +
        public static final java.lang.String EOL_CR
        +
        End-of-line: carriage-return (\n).
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        EOL_CRLF

        +
        public static final java.lang.String EOL_CRLF
        +
        End-of-line: CR & LF (\r\n).
        +
        See Also:
        Constant Field Values
        +
      • +
      + + + +
        +
      • +

        CHARSET_DEFAULT

        +
        public static final java.nio.charset.Charset CHARSET_DEFAULT
        +
        Default charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_UTF8

        +
        public static final java.nio.charset.Charset CHARSET_UTF8
        +
        UTF-8 charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_ISO_8859_1

        +
        public static final java.nio.charset.Charset CHARSET_ISO_8859_1
        +
        ISO-8859-1 charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_US_ASCII

        +
        public static final java.nio.charset.Charset CHARSET_US_ASCII
        +
        US-ASCII charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_UTF16

        +
        public static final java.nio.charset.Charset CHARSET_UTF16
        +
        UTF-16 charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_UTF16LE

        +
        public static final java.nio.charset.Charset CHARSET_UTF16LE
        +
        UTF-16LE charset.
        +
      • +
      + + + +
        +
      • +

        CHARSET_UTF16BE

        +
        public static final java.nio.charset.Charset CHARSET_UTF16BE
        +
        UTF-16BE charset.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        listPorts

        +
        public static PortInfo[] listPorts()
        +
        List available ports on this device.
        +
        Returns:
        an array of available ports.
        +
      • +
      + + + +
        +
      • +

        finalize

        +
        protected void finalize()
        +                 throws java.lang.Throwable
        +
        +
        Overrides:
        +
        finalize in class java.lang.Object
        +
        Throws:
        +
        java.lang.Throwable
        +
      • +
      + + + +
        +
      • +

        isValid

        +
        public boolean isValid()
        +
        Determine whether this instance has a valid port.
        +
        Returns:
        true if native port is valid, false otherwise.
        +
      • +
      + + + + + + + +
        +
      • +

        isOpen

        +
        public boolean isOpen()
        +
        Gets the open status of the serial port.
        +
        Returns:
        Returns true if the port is open, false otherwise.
        +
      • +
      + + + +
        +
      • +

        close

        +
        public void close()
        +           throws java.io.IOException
        +
        Closes the serial port.
        +
        +
        Specified by:
        +
        close in interface java.io.Closeable
        +
        Specified by:
        +
        close in interface java.lang.AutoCloseable
        +
        Throws:
        +
        java.io.IOException - I/O error.
        +
      • +
      + + + + + + + +
        +
      • +

        waitReadable

        +
        public boolean waitReadable()
        +                     throws SerialIOException
        +
        Block until there is serial data to read or read_timeout_constant + number of milliseconds have elapsed. The return value is true when + the function exits with the port in a readable state, false otherwise + (due to timeout or select interruption).
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        waitByteTimes

        +
        public void waitByteTimes(int count)
        +
        Block for a period of time corresponding to the transmission time of + count characters at present serial settings. This may be used in con- + junction with waitReadable to read larger blocks of data from the + port.
        +
      • +
      + + + +
        +
      • +

        read

        +
        public int read(byte[] buffer,
        +       int offset,
        +       int size)
        +         throws SerialIOException
        +
        Read a given amount of bytes from the serial port into a given buffer. + + The read function will return in one of three cases: + * The number of requested bytes was read. + * In this case the number of bytes requested will match the size_t + returned by read. + * A timeout occurred, in this case the number of bytes read will not + match the amount requested, but no exception will be thrown. One of + two possible timeouts occurred: + * The inter byte timeout expired, this means that number of + milliseconds elapsed between receiving bytes from the serial port + exceeded the inter byte timeout. + * The total timeout expired, which is calculated by multiplying the + read timeout multiplier by the number of requested bytes and then + added to the read timeout constant. If that total number of + milliseconds elapses after the initial call to read a timeout will + occur. + * An exception occurred, in this case an actual exception will be thrown.
        +
        Parameters:
        buffer - An array of at least the requested size.
        offset - the offset of the buffer to receive data.
        size - how many bytes to be read.
        +
        Returns:
        A size_t representing the number of bytes read as a result of the + call to read.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        read

        +
        public byte[] read()
        +            throws SerialIOException
        +
        Read all data available from the serial port.
        +
        Returns:
        A buffer that contains all available data.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        read

        +
        public int read(java.nio.ByteBuffer buffer,
        +       int size)
        +         throws SerialIOException
        +
        Read a given amount of bytes from the serial port into a give buffer.
        +
        Parameters:
        buffer - A reference to a std::vector of uint8_t.
        size - A size_t defining how many bytes to be read.
        +
        Returns:
        A size_t representing the number of bytes read as a result of the + call to read.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        read

        +
        public int read(java.lang.StringBuilder buffer,
        +       int size,
        +       java.nio.charset.Charset charset)
        +         throws SerialIOException
        +
        Read a given amount of bytes from the serial port into a give buffer.
        +
        Parameters:
        buffer - A reference to a std::string.
        size - A size_t defining how many bytes to be read.
        charset - The charset of the data.
        +
        Returns:
        A size_t representing the number of bytes read as a result of the + call to read.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        read

        +
        public java.lang.String read(int size,
        +                    java.nio.charset.Charset charset)
        +                      throws SerialIOException
        +
        Read a given amount of bytes from the serial port and return a string + containing the data.
        +
        Parameters:
        size - A size_t defining how many bytes to be read.
        +
        Returns:
        A std::string containing the data read from the port.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        readline

        +
        public int readline(java.lang.StringBuilder buffer,
        +           int size,
        +           java.lang.String eol)
        +             throws SerialIOException
        +
        Reads in a line or until a given delimiter has been processed. + + Reads from the serial port until a single line has been read.
        +
        Parameters:
        buffer - A std::string reference used to store the data.
        size - A maximum length of a line, defaults to 65536 (2^16)
        eol - A string to match against for the EOL.
        +
        Returns:
        A size_t representing the number of bytes read.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        readline

        +
        public java.lang.String readline(int size,
        +                        java.lang.String eol)
        +                          throws SerialIOException
        +
        Reads in a line or until a given delimiter has been processed. + + Reads from the serial port until a single line has been read.
        +
        Parameters:
        size - A maximum length of a line, defaults to 65536 (2^16)
        eol - A string to match against for the EOL.
        +
        Returns:
        A std::string containing the line.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        readlines

        +
        public java.lang.String[] readlines(int size,
        +                           java.lang.String eol)
        +                             throws SerialIOException
        +
        Reads in multiple lines until the serial port times out. + + This requires a timeout > 0 before it can be run. It will read until a + timeout occurs and return a list of strings.
        +
        Parameters:
        size - A maximum length of combined lines, defaults to 65536 (2^16)
        eol - A string to match against for the EOL.
        +
        Returns:
        A array containing the lines.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        write

        +
        public int write(byte[] data,
        +        int size)
        +          throws SerialIOException
        +
        Write a string to the serial port.
        +
        Parameters:
        data - A const reference containing the data to be written + to the serial port.
        size - A size_t that indicates how many bytes should be written from + the given data buffer.
        +
        Returns:
        A size_t representing the number of bytes actually written to + the serial port.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        write

        +
        public int write(java.lang.String s)
        +          throws SerialIOException
        +
        Write a string to the serial port.
        +
        Parameters:
        s - A const reference containing the data to be written + to the serial port.
        +
        Returns:
        A size_t representing the number of bytes actually written to + the serial port.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        setPort

        +
        public void setPort(java.lang.String port)
        +
        Sets the serial port identifier.
        +
        Parameters:
        port - A const std::string reference containing the address of the + serial port, which would be something like 'COM1' on Windows and + '/dev/ttyS0' on Linux.
        +
        Throws:
        +
        java.lang.IllegalArgumentException
        +
      • +
      + + + +
        +
      • +

        getPort

        +
        public java.lang.String getPort()
        +
        Gets the serial port identifier.
        +
        See Also:
        setPort(String)
        +
      • +
      + + + +
        +
      • +

        setTimeout

        +
        public void setTimeout(Timeout timeout)
        +
        Sets the timeout for reads and writes using the Timeout struct. + + There are two timeout conditions described here: + * The inter byte timeout: + * The inter_byte_timeout component of serial::Timeout defines the + maximum amount of time, in milliseconds, between receiving bytes on + the serial port that can pass before a timeout occurs. Setting this + to zero will prevent inter byte timeouts from occurring. + * Total time timeout: + * The constant and multiplier component of this timeout condition, + for both read and write, are defined in serial::Timeout. This + timeout occurs if the total time since the read or write call was + made exceeds the specified time in milliseconds. + * The limit is defined by multiplying the multiplier component by the + number of requested bytes and adding that product to the constant + component. In this way if you want a read call, for example, to + timeout after exactly one second regardless of the number of bytes + you asked for then set the read_timeout_constant component of + serial::Timeout to 1000 and the read_timeout_multiplier to zero. + This timeout condition can be used in conjunction with the inter + byte timeout condition with out any problems, timeout will simply + occur when one of the two timeout conditions is met. This allows + users to have maximum control over the trade-off between + responsiveness and efficiency. + + Read and write functions will return in one of three cases. When the + reading or writing is complete, when a timeout occurs, or when an + exception occurs.
        +
        Parameters:
        timeout - A serial::Timeout struct containing the inter byte + timeout, and the read and write timeout constants and multipliers.
        See Also:
        Timeout
        +
      • +
      + + + +
        +
      • +

        setTimeout

        +
        public void setTimeout(int inter_byte_timeout,
        +              int read_timeout_constant,
        +              int read_timeout_multiplier,
        +              int write_timeout_constant,
        +              int write_timeout_multiplier)
        +
        Sets the timeout for reads and writes.
        +
      • +
      + + + +
        +
      • +

        getTimeout

        +
        public Timeout getTimeout()
        +
        Gets the timeout for reads in seconds.
        +
        Returns:
        A Timeout struct containing the inter_byte_timeout, and read + and write timeout constants and multipliers.
        See Also:
        setTimeout(Timeout)
        +
      • +
      + + + +
        +
      • +

        setBaudrate

        +
        public void setBaudrate(int baudrate)
        +                 throws SerialIOException
        +
        Sets the baudrate for the serial port. + + Possible baudrates depends on the system but some safe baudrates include: + 110, 300, 600, 1200, 2400, 4800, 9600 (default), 14400, 19200, 28800, 38400, 56000, + 57600, 115200 + Some other baudrates that are supported by some comports: + 128000, 153600, 230400, 256000, 460800, 921600
        +
        Parameters:
        baudrate - An integer that sets the baud rate for the serial port.
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + +
        +
      • +

        getBaudrate

        +
        public int getBaudrate()
        +
        Gets the baudrate for the serial port.
        +
        Returns:
        An integer that sets the baud rate for the serial port.
        See Also:
        setBaudrate(int)
        +
      • +
      + + + +
        +
      • +

        setBytesize

        +
        public void setBytesize(ByteSize bytesize)
        +                 throws SerialIOException
        +
        Sets the bytesize for the serial port.
        +
        Parameters:
        bytesize - Size of each byte in the serial transmission of data, + default is eightbits, possible values are: fivebits, sixbits, sevenbits, + eightbits
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + + + + + +
        +
      • +

        setParity

        +
        public void setParity(Parity parity)
        +               throws SerialIOException
        +
        Sets the parity for the serial port.
        +
        Parameters:
        parity - Method of parity, default is parity_none, possible values + are: parity_none, parity_odd, parity_even
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + + + + + +
        +
      • +

        setStopbits

        +
        public void setStopbits(Stopbits stopbits)
        +                 throws SerialIOException
        +
        Sets the stopbits for the serial port.
        +
        Parameters:
        stopbits - Number of stop bits used, default is stopbits_one, + possible values are: stopbits_one, stopbits_one_point_five, stopbits_two
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + + + + + +
        +
      • +

        setFlowcontrol

        +
        public void setFlowcontrol(FlowControl flowcontrol)
        +                    throws SerialIOException
        +
        Sets the flow control for the serial port.
        +
        Parameters:
        flowcontrol - Type of flowcontrol used, default is flowcontrol_none, + possible values are: flowcontrol_none, flowcontrol_software, + flowcontrol_hardware
        +
        Throws:
        +
        SerialIOException - I/O Error.
        +
      • +
      + + + + + + + +
        +
      • +

        flush

        +
        public void flush()
        +
        Flush the input and output buffers
        +
      • +
      + + + +
        +
      • +

        flushInput

        +
        public void flushInput()
        +
        Flush only the input buffer
        +
      • +
      + + + +
        +
      • +

        flushOutput

        +
        public void flushOutput()
        +
        Flush only the output buffer
        +
      • +
      + + + +
        +
      • +

        sendBreak

        +
        public void sendBreak(int duration)
        +
        Sends the RS-232 break signal. See tcsendbreak(3).
        +
      • +
      + + + +
        +
      • +

        setBreak

        +
        public void setBreak(boolean level)
        +
        Set the break condition to a given level.
        +
      • +
      + + + +
        +
      • +

        setBreak

        +
        public void setBreak()
        +
        Set the break condition to true level.
        +
      • +
      + + + +
        +
      • +

        setRTS

        +
        public void setRTS(boolean level)
        +
        Set the RTS handshaking line to the given level.
        +
      • +
      + + + +
        +
      • +

        setRTS

        +
        public void setRTS()
        +
        Set the RTS handshaking line to the true level.
        +
      • +
      + + + +
        +
      • +

        setDTR

        +
        public void setDTR(boolean level)
        +
        Set the DTR handshaking line to the given level.
        +
      • +
      + + + +
        +
      • +

        setDTR

        +
        public void setDTR()
        +
        Set the DTR handshaking line to the given level.
        +
      • +
      + + + +
        +
      • +

        waitForChange

        +
        public boolean waitForChange()
        +
        Blocks until CTS, DSR, RI, CD changes or something interrupts it. + + Can throw an exception if an error occurs while waiting. + You can check the status of CTS, DSR, RI, and CD once this returns. + Uses TIOCMIWAIT via ioctl if available (mostly only on Linux) with a + resolution of less than +-1ms and as good as +-0.2ms. Otherwise a + polling method is used which can give +-2ms.
        +
        Returns:
        Returns true if one of the lines changed, false if something else + occurred.
        +
        Throws:
        +
        SerialException
        +
      • +
      + + + +
        +
      • +

        getCTS

        +
        public boolean getCTS()
        +
      • +
      + + + +
        +
      • +

        getDSR

        +
        public boolean getDSR()
        +
        Returns the current status of the DSR line.
        +
      • +
      + + + +
        +
      • +

        getRI

        +
        public boolean getRI()
        +
        Returns the current status of the RI line.
        +
      • +
      + + + +
        +
      • +

        getCD

        +
        public boolean getCD()
        +
        Returns the current status of the CD line.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/SerialException.html b/android/doc/serial/SerialException.html new file mode 100644 index 0000000..01414ef --- /dev/null +++ b/android/doc/serial/SerialException.html @@ -0,0 +1,278 @@ + + + + + +SerialException + + + + + + + + + + + +
+
serial
+

Class SerialException

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Throwable
    • +
    • +
        +
      • java.lang.Exception
      • +
      • +
          +
        • java.lang.RuntimeException
        • +
        • +
            +
          • serial.SerialException
          • +
          +
        • +
        +
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    +
    public class SerialException
    +extends java.lang.RuntimeException
    +
    Created by chzhong on 1/20/16.
    +
    See Also:
    Serialized Form
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      SerialException(java.lang.String detailMessage) +
      Constructs a new SerialException with the current stack trace + and the specified detail message.
      +
      SerialException(java.lang.String detailMessage, + java.lang.Throwable throwable) +
      Constructs a new PortNotOpenedException with the current stack trace, + the specified detail message and the specified cause.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SerialException

        +
        public SerialException(java.lang.String detailMessage)
        +
        Constructs a new SerialException with the current stack trace + and the specified detail message.
        +
        Parameters:
        detailMessage - the detail message for this exception.
        +
      • +
      + + + +
        +
      • +

        SerialException

        +
        public SerialException(java.lang.String detailMessage,
        +               java.lang.Throwable throwable)
        +
        Constructs a new PortNotOpenedException with the current stack trace, + the specified detail message and the specified cause.
        +
        Parameters:
        detailMessage - the detail message for this exception.
        throwable -
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/SerialIOException.html b/android/doc/serial/SerialIOException.html new file mode 100644 index 0000000..0aaaf5a --- /dev/null +++ b/android/doc/serial/SerialIOException.html @@ -0,0 +1,279 @@ + + + + + +SerialIOException + + + + + + + + + + + +
+
serial
+

Class SerialIOException

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Throwable
    • +
    • +
        +
      • java.lang.Exception
      • +
      • +
          +
        • java.io.IOException
        • +
        • +
            +
          • serial.SerialIOException
          • +
          +
        • +
        +
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    +
    public class SerialIOException
    +extends java.io.IOException
    +
    Created by chzhong on 1/20/16.
    +
    See Also:
    Serialized Form
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      SerialIOException(java.lang.String detailMessage) +
      Constructs a new SerialIOException with its stack trace and detail + message filled in.
      +
      SerialIOException(java.lang.String message, + java.lang.Throwable cause) +
      Constructs a new instance of this class with detail message and cause + filled in.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SerialIOException

        +
        public SerialIOException(java.lang.String detailMessage)
        +
        Constructs a new SerialIOException with its stack trace and detail + message filled in.
        +
        Parameters:
        detailMessage - the detail message for this exception.
        +
      • +
      + + + +
        +
      • +

        SerialIOException

        +
        public SerialIOException(java.lang.String message,
        +                 java.lang.Throwable cause)
        +
        Constructs a new instance of this class with detail message and cause + filled in.
        +
        Parameters:
        message - The detail message for the exception.
        cause - The detail cause for the exception.
        Since:
        +
        1.6
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/Stopbits.html b/android/doc/serial/Stopbits.html new file mode 100644 index 0000000..66f39ac --- /dev/null +++ b/android/doc/serial/Stopbits.html @@ -0,0 +1,378 @@ + + + + + +Stopbits + + + + + + + + + + + +
+
serial
+

Enum Stopbits

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • java.lang.Enum<Stopbits>
    • +
    • +
        +
      • serial.Stopbits
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<Stopbits>
    +
    +
    +
    +
    public enum Stopbits
    +extends java.lang.Enum<Stopbits>
    +
    Enumeration defines the possible stopbit types for the serial port.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + +
      Enum Constants 
      Enum Constant and Description
      One +
      Use 1 as stop bit.
      +
      OnePointFive +
      Use 1.5 as stopbit.
      +
      Two +
      Use 2 as stop bit.
      +
      +
    • +
    + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      intvalue +
      Internal value of the enumeration.
      +
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static StopbitsvalueOf(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static Stopbits[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        One

        +
        public static final Stopbits One
        +
        Use 1 as stop bit. + + This is the default.
        +
      • +
      + + + +
        +
      • +

        Two

        +
        public static final Stopbits Two
        +
        Use 2 as stop bit.
        +
      • +
      + + + +
        +
      • +

        OnePointFive

        +
        public static final Stopbits OnePointFive
        +
        Use 1.5 as stopbit.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        value

        +
        public final int value
        +
        Internal value of the enumeration.
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static Stopbits[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (Stopbits c : Stopbits.values())
        +    System.out.println(c);
        +
        +
        Returns:
        an array containing the constants of this enum type, in the order they are declared
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static Stopbits valueOf(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        Parameters:
        name - the name of the enum constant to be returned.
        +
        Returns:
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/Timeout.html b/android/doc/serial/Timeout.html new file mode 100644 index 0000000..25a57cd --- /dev/null +++ b/android/doc/serial/Timeout.html @@ -0,0 +1,345 @@ + + + + + +Timeout + + + + + + + + + + + +
+
serial
+

Class Timeout

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • serial.Timeout
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public final class Timeout
    +extends java.lang.Object
    +
    Structure for setting the timeout of the serial port, times are + in milliseconds. + + In order to disable the interbyte timeout, set it to MAX.
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      static intMAX +
      Value that represents interbyte timeout should be disabled.
      +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      Timeout() 
      Timeout(int timeout) +
      Convenience function to generate Timeout structs using a + single absolute timeout.
      +
      Timeout(int inter_byte_timeout, + int read_timeout_constant, + int read_timeout_multiplier, + int write_timeout_constant, + int write_timeout_multiplier) 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      static TimeoutsimpleTimeout(int timeout) +
      Convenience function to generate Timeout structs using a + single absolute timeout.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        MAX

        +
        public static final int MAX
        +
        Value that represents interbyte timeout should be disabled. + + This is an unsigned value.
        +
        See Also:
        Constant Field Values
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Timeout

        +
        public Timeout()
        +
      • +
      + + + +
        +
      • +

        Timeout

        +
        public Timeout(int timeout)
        +
        Convenience function to generate Timeout structs using a + single absolute timeout.
        +
        Parameters:
        timeout - A long that defines the time in milliseconds until a + timeout occurs after a call to read or write is made.
        +
      • +
      + + + +
        +
      • +

        Timeout

        +
        public Timeout(int inter_byte_timeout,
        +       int read_timeout_constant,
        +       int read_timeout_multiplier,
        +       int write_timeout_constant,
        +       int write_timeout_multiplier)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        simpleTimeout

        +
        public static final Timeout simpleTimeout(int timeout)
        +
        Convenience function to generate Timeout structs using a + single absolute timeout.
        +
        Parameters:
        timeout - A long that defines the time in milliseconds until a + timeout occurs after a call to read or write is made.
        +
        Returns:
        Timeout struct that represents this simple timeout provided.
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/android/doc/serial/package-frame.html b/android/doc/serial/package-frame.html new file mode 100644 index 0000000..1f4a761 --- /dev/null +++ b/android/doc/serial/package-frame.html @@ -0,0 +1,36 @@ + + + + + +serial + + + + +

serial

+ + + diff --git a/android/doc/serial/package-summary.html b/android/doc/serial/package-summary.html new file mode 100644 index 0000000..f9e3dd9 --- /dev/null +++ b/android/doc/serial/package-summary.html @@ -0,0 +1,220 @@ + + + + + +serial + + + + + + + + + + +
+

Package serial

+
+
+
    +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary 
    ClassDescription
    Log +
    Log replacement for android.util.Log.
    +
    PortInfo +
    Created by chzhong on 1/20/16.
    +
    Serial +
    Serial Port.
    +
    Serial.Builder +
    Builder for Serial.
    +
    Timeout +
    Structure for setting the timeout of the serial port, times are + in milliseconds.
    +
    +
  • +
  • + + + + + + + + + + + + + + + + + + + + + + + + +
    Enum Summary 
    EnumDescription
    ByteSize +
    Enumeration defines the possible bytesizes for the serial port.
    +
    FlowControl +
    Enumeration defines the possible flowcontrol types for the serial port.
    +
    Parity +
    Enumeration defines the possible parity types for the serial port.
    +
    Stopbits +
    Enumeration defines the possible stopbit types for the serial port.
    +
    +
  • +
  • + + + + + + + + + + + + + + + + + + + + +
    Exception Summary 
    ExceptionDescription
    PortNotOpenedException +
    Created by chzhong on 1/20/16.
    +
    SerialException +
    Created by chzhong on 1/20/16.
    +
    SerialIOException +
    Created by chzhong on 1/20/16.
    +
    +
  • +
+
+ + + + + + diff --git a/android/doc/serial/package-tree.html b/android/doc/serial/package-tree.html new file mode 100644 index 0000000..6bf78cd --- /dev/null +++ b/android/doc/serial/package-tree.html @@ -0,0 +1,162 @@ + + + + + +serial Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package serial

+
+
+

Class Hierarchy

+ +

Enum Hierarchy

+
    +
  • java.lang.Object + +
  • +
+
+ +
+ + + + + +
+ + + + diff --git a/android/doc/serialized-form.html b/android/doc/serialized-form.html new file mode 100644 index 0000000..8416cd7 --- /dev/null +++ b/android/doc/serialized-form.html @@ -0,0 +1,134 @@ + + + + + +Serialized Form + + + + + + + + + + +
+

Serialized Form

+
+
+ +
+ + + + + + diff --git a/android/doc/stylesheet.css b/android/doc/stylesheet.css new file mode 100644 index 0000000..0aeaa97 --- /dev/null +++ b/android/doc/stylesheet.css @@ -0,0 +1,474 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ +body { + background-color:#ffffff; + color:#353833; + font-family:Arial, Helvetica, sans-serif; + font-size:76%; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4c6b87; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4c6b87; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-size:1.3em; +} +h1 { + font-size:1.8em; +} +h2 { + font-size:1.5em; +} +h3 { + font-size:1.4em; +} +h4 { + font-size:1.3em; +} +h5 { + font-size:1.2em; +} +h6 { + font-size:1.1em; +} +ul { + list-style-type:disc; +} +code, tt { + font-size:1.2em; +} +dt code { + font-size:1.2em; +} +table tr td dt code { + font-size:1.2em; + vertical-align:top; +} +sup { + font-size:.6em; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:.8em; + z-index:200; + margin-top:-7px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + background-image:url(resources/titlebar.gif); + background-position:left top; + background-repeat:no-repeat; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:1em; + margin:0; +} +.topNav { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.bottomNav { + margin-top:10px; + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.subNav { + background-color:#dee3e9; + border-bottom:1px solid #9eadc0; + float:left; + width:100%; + overflow:hidden; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding:3px 6px; +} +ul.subNavList li{ + list-style:none; + float:left; + font-size:90%; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; +} +.navBarCell1Rev { + background-image:url(resources/tab.gif); + background-color:#a88834; + color:#FFFFFF; + margin: auto 5px; + border:1px solid #c9aa44; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader h1 { + font-size:1.3em; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 25px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:1.2em; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:1.0em; +} +.indexContainer h2 { + font-size:1.1em; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:1.1em; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:10px 0 10px 20px; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:25px; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #9eadc0; + background-color:#f9f9f9; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:1px solid #9eadc0; + border-top:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; + border-bottom:1px solid #9eadc0; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.contentContainer table, .classUseContainer table, .constantValuesContainer table { + border-bottom:1px solid #9eadc0; + width:100%; +} +.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table { + width:100%; +} +.contentContainer .description table, .contentContainer .details table { + border-bottom:none; +} +.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{ + vertical-align:top; + padding-right:20px; +} +.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast, +.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast, +.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne, +.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne { + padding-right:3px; +} +.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#FFFFFF; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + margin:0px; +} +caption a:link, caption a:hover, caption a:active, caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span { + white-space:nowrap; + padding-top:8px; + padding-left:8px; + display:block; + float:left; + background-image:url(resources/titlebar.gif); + height:18px; +} +.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd { + width:10px; + background-image:url(resources/titlebar_end.gif); + background-repeat:no-repeat; + background-position:top right; + position:relative; + float:left; +} +ul.blockList ul.blockList li.blockList table { + margin:0 0 12px 0px; + width:100%; +} +.tableSubHeadingColor { + background-color: #EEEEFF; +} +.altColor { + background-color:#eeeeef; +} +.rowColor { + background-color:#ffffff; +} +.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td { + text-align:left; + padding:3px 3px 3px 7px; +} +th.colFirst, th.colLast, th.colOne, .constantValuesContainer th { + background:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + text-align:left; + padding:3px 3px 3px 7px; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +td.colFirst, th.colFirst { + border-left:1px solid #9eadc0; + white-space:nowrap; +} +td.colLast, th.colLast { + border-right:1px solid #9eadc0; +} +td.colOne, th.colOne { + border-right:1px solid #9eadc0; + border-left:1px solid #9eadc0; +} +table.overviewSummary { + padding:0px; + margin-left:0px; +} +table.overviewSummary td.colFirst, table.overviewSummary th.colFirst, +table.overviewSummary td.colOne, table.overviewSummary th.colOne { + width:25%; + vertical-align:middle; +} +table.packageSummary td.colFirst, table.overviewSummary th.colFirst { + width:25%; + vertical-align:middle; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:.9em; +} +.block { + display:block; + margin:3px 0 0 0; +} +.strong { + font-weight:bold; +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..1d3591c --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..05ef575b0cd0173fc735f2857ce4bd594ce4f6bd GIT binary patch literal 53637 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 t9m@SZ!E*7&jsr?!t7TL-WYI4eM@gAug8 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/library/build.gradle b/android/library/build.gradle new file mode 100644 index 0000000..ed3d07e --- /dev/null +++ b/android/library/build.gradle @@ -0,0 +1,49 @@ +apply plugin: 'com.android.library' +//apply plugin: 'com.android.model.library' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + //useDeprecatedNdk true + + /* + ndk { + moduleName "serial" + } + */ + + sourceSets { + main { + jni.srcDirs = [] //disable automatic ndk-build call + } + } + + defaultConfig { + minSdkVersion 16 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + jniDebuggable true + } + } + dexOptions { + incremental true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) +} diff --git a/android/library/library.iml b/android/library/library.iml new file mode 100644 index 0000000..f9fb149 --- /dev/null +++ b/android/library/library.iml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/library/proguard-rules.pro b/android/library/proguard-rules.pro new file mode 100644 index 0000000..9aa02b1 --- /dev/null +++ b/android/library/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /mnt/android/android-sdk-linux_x86/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/android/library/src/main/AndroidManifest.xml b/android/library/src/main/AndroidManifest.xml new file mode 100644 index 0000000..2896a14 --- /dev/null +++ b/android/library/src/main/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/android/library/src/main/java/serial/ByteSize.java b/android/library/src/main/java/serial/ByteSize.java new file mode 100644 index 0000000..0856465 --- /dev/null +++ b/android/library/src/main/java/serial/ByteSize.java @@ -0,0 +1,50 @@ +package serial; + +/** + * Enumeration defines the possible bytesizes for the serial port. + */ +public enum ByteSize { + /** + * Use 5 bits in a byte. + */ + FiveBits(5), + /** + * Use 6 bits in a byte. + */ + SixBits(6), + /** + * Use 7 bits in a byte. + */ + SevenBits(7), + /** + * Use 8 bits in a byte. + * + * This is the default. + */ + EightBits(8); + + /** + * Number of bits in a single byte. + */ + public final int bitLength; + + ByteSize(int bitLength) { + this.bitLength = bitLength; + } + + static ByteSize fromValue(int value) { + switch (value) { + case 5: + return FiveBits; + case 6: + return SixBits; + case 7: + return SevenBits; + case 8: + return EightBits; + default: + throw new IllegalArgumentException("Invalid value."); + } + } + +} diff --git a/android/library/src/main/java/serial/FlowControl.java b/android/library/src/main/java/serial/FlowControl.java new file mode 100644 index 0000000..c5417b5 --- /dev/null +++ b/android/library/src/main/java/serial/FlowControl.java @@ -0,0 +1,21 @@ +package serial; + +/** + * Enumeration defines the possible flowcontrol types for the serial port. + */ +public enum FlowControl { + /** + * Use none flow control. + * + * This is the default. + */ + None, + /** + * Use software flow control. + */ + Software, + /** + * Use hardware flow control. + */ + Hardware; +} diff --git a/android/library/src/main/java/serial/Log.java b/android/library/src/main/java/serial/Log.java new file mode 100644 index 0000000..8aed4c2 --- /dev/null +++ b/android/library/src/main/java/serial/Log.java @@ -0,0 +1,599 @@ +package serial; + +import android.text.TextUtils; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.reflect.Method; +import java.util.Locale; + +import serial.android.BuildConfig; + +/** + * Log replacement for {@link android.util.Log}. + * + * @author chzhong + */ +public final class Log { + + /** + * + */ + private static final String MESSAGE_TEMPLATE = "[%s]%s"; + + private static Object sSyncObject = new Object(); + + /** + * Priority constant for enable all loggings. + */ + public static final int ALL = -1; + + /** + * Priority constant for {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} methods; use Log.v. + */ + public static final int VERBOSE = 2; + + /** + * Priority constant for the {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} method; use Log.d. + */ + public static final int DEBUG = 3; + + /** + * Priority constant for the {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} method; use Log.i. + */ + public static final int INFO = 4; + + /** + * Priority constant for the {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} method; use Log.w. + */ + public static final int WARN = 5; + + /** + * Priority constant for the {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} method; use Log.e. + */ + public static final int ERROR = 6; + + /** + * Priority constant for the {@link #println(int, String, String)} or + * {@link #setFilterLevel(int)} method. + */ + public static final int ASSERT = 7; + + /** + * Priority constant for disable all loggings. + */ + public static final int NONE = Integer.MAX_VALUE; + + /** + * Filter level of logs. Only levels greater or equals this level will be + * output to LogCat. + */ + private static int sFilterLevel = BuildConfig.DEBUG ? ALL : WARN; + + private static String sApplicationTag; + + /** + * Set the default tag for this application. + * + * @param tag The tag of the application. + */ + public static void setApplicationTag(String tag) { + sApplicationTag = tag; + } + + /** + * Gets the default tag of the application. + * + * @return The default tag of the application. + */ + public static String getApplicationTag() { + return sApplicationTag; + } + + /** + * Sets the filter level of logs. Only levels greater or equals this level + * will be output to LogCat. + * + * @param level The filter level. + */ + public static void setFilterLevel(int level) { + synchronized (sSyncObject) { + sFilterLevel = level; + } + } + + /** + * Gets the filter level of logs. Only levels greater or equals this level + * will be output to LogCat. + * + * @return Current filter level. + */ + public static int getFilterLevel() { + return sFilterLevel; + } + + private Log() { + } + + /** + * Send a {@link #VERBOSE} log message. + * + * @param msg The message you would like logged. + */ + public static int v(String msg) { + return println(VERBOSE, null, msg); + } + + /** + * Send a {@link #VERBOSE} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + public static int v(String tag, String msg) { + return println(VERBOSE, tag, msg); + } + + /** + * Send a {@link #VERBOSE} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param format The format of the message you would like logged. + * @param args The arguments used to format the message. + */ + public static int v(String tag, String format, Object... args) { + if (VERBOSE < sFilterLevel) + return 0; + String msg = formatString(format, args); + return println(VERBOSE, tag, msg); + } + + /** + * Send a {@link #VERBOSE} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int v(String tag, String msg, Throwable tr) { + return println(VERBOSE, tag, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Send a {@link #DEBUG} log message. + * + * @param msg The message you would like logged. + */ + public static int d(String msg) { + return println(DEBUG, null, msg); + } + + /** + * Send a {@link #DEBUG} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + public static int d(String tag, String msg) { + return println(DEBUG, tag, msg); + } + + /** + * Send a {@link #DEBUG} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param format The format of the message you would like logged. + * @param args The arguments used to format the message. + */ + public static int d(String tag, String format, Object... args) { + if (DEBUG < sFilterLevel) + return 0; + String msg = formatString(format, args); + return println(DEBUG, tag, msg); + } + + /** + * Send a {@link #DEBUG} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int d(String tag, String msg, Throwable tr) { + return println(DEBUG, tag, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Send an {@link #INFO} log message. + * + * @param msg The message you would like logged. + */ + public static int i(String msg) { + return println(INFO, null, msg); + } + + /** + * Send an {@link #INFO} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + public static int i(String tag, String msg) { + return println(INFO, tag, msg); + } + + /** + * Send an {@link #INFO} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param format The format of the message you would like logged. + * @param args The arguments used to format the message. + */ + public static int i(String tag, String format, Object... args) { + if (INFO < sFilterLevel) + return 0; + String msg = formatString(format, args); + return println(INFO, tag, msg); + } + + /** + * Send a {@link #INFO} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int i(String tag, String msg, Throwable tr) { + return println(INFO, tag, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Send a {@link #WARN} log message. + * + * @param msg The message you would like logged. + */ + public static int w(String msg) { + return println(WARN, null, msg); + } + + /** + * Send a {@link #WARN} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + public static int w(String tag, String msg) { + return println(WARN, tag, msg); + } + + /** + * Send a {@link #WARN} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param format The format of the message you would like logged. + * @param args The arguments used to format the message. + */ + public static int w(String tag, String format, Object... args) { + if (WARN < sFilterLevel) + return 0; + String msg = formatString(format, args); + return println(WARN, tag, msg); + } + + /** + * Send a {@link #WARN} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int w(String tag, String msg, Throwable tr) { + return println(WARN, tag, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Checks to see whether or not a log for the specified tag is loggable at + * the specified level. The default level of any tag is set to INFO. This + * means that any level above and including INFO will be logged. Before you + * make any calls to a logging method you should check to see if your tag + * should be logged. You can change the default level by setting a system + * property: 'setprop log.tag.<YOUR_LOG_TAG> <LEVEL>' Where level is + * either VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, or SUPPRESS. SUPRESS + * will turn off all logging for your tag. You can also create a local.prop + * file that with the following in it: + * 'log.tag.<YOUR_LOG_TAG>=<LEVEL>' and place that in + * /data/local.prop. + * + * @param tag The tag to check. + * @param level The level to check. + * @return Whether or not that this is allowed to be logged. + * @throws IllegalArgumentException is thrown if the tag.length() > 23. + */ + public static boolean isLoggable(String tag, int level) { + return android.util.Log.isLoggable(tag, level); + } + + /* + * Send a {@link #WARN} log message and log the exception. + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param tr An exception to log + */ + public static int w(String tag, Throwable tr) { + return println(WARN, tag, getStackTraceString(tr)); + } + + public static int w(Throwable tr) { + return println(WARN, null, getStackTraceString(tr)); + } + + /** + * Send an {@link #ERROR} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param format The format of the message you would like logged. + * @param args The arguments used to format the message. + */ + public static int e(String tag, String format, Object... args) { + if (ERROR < sFilterLevel) + return 0; + String msg = formatString(format, args); + return println(ERROR, tag, msg); + } + + private static String formatString(String format, Object... args) { + try { + return String.format(Locale.US, format, args); + } catch (Exception e) { + StringBuilder builder = new StringBuilder(); + builder.append(format); + for (Object arg : args) { + builder.append(arg.toString()); + } + return builder.toString(); + } + } + + /** + * Send an {@link #ERROR} log message. + * + * @param msg The message you would like logged. + */ + public static int e(String msg) { + return println(ERROR, null, msg); + } + + /** + * Send an {@link #ERROR} log message. + * + * @param tr The throwable you would like logged. + */ + public static int e(Throwable tr) { + return println(ERROR, null, getStackTraceString(tr)); + } + + /** + * Send an {@link #ERROR} log message. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + public static int e(String tag, String msg) { + return println(ERROR, tag, msg); + } + + /** + * Send a {@link #ERROR} log message and log the exception. + * + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int e(String msg, Throwable tr) { + return println(ERROR, null, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Send a {@link #ERROR} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + public static int e(String tag, String msg, Throwable tr) { + return println(ERROR, tag, msg + '\n' + getStackTraceString(tr)); + } + + /** + * Handy function to get a loggable stack trace from a Throwable + * + * @param tr An exception to log + */ + public static String getStackTraceString(Throwable tr) { + if (tr == null) { + return ""; + } + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + tr.printStackTrace(pw); + return sw.toString(); + } + + /** + * Low-level logging call. + * + * @param priority The priority/type of this log message + * @param tag Used to identify the source of a log message. It usually + * identifies the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @return The number of bytes written. + */ + public static int println(int priority, String tag, String msg) { + msg = (msg == null) ? "" : msg; + + int result = 0; + if (priority >= sFilterLevel) { + if (TextUtils.isEmpty(sApplicationTag) || sApplicationTag.equals(tag)) { + result = android.util.Log.println(priority, tag, msg); + } else if (TextUtils.isEmpty(tag) && !TextUtils.isEmpty(sApplicationTag)) { + result = android.util.Log.println(priority, sApplicationTag, msg); + } else { + String message = formatString(MESSAGE_TEMPLATE, tag, msg); + result = android.util.Log.println(priority, sApplicationTag, message); + } + } + return result; + } + + public static void myAssert(boolean condition, String message) { + if (sFilterLevel == ALL && !condition) { + throw new AssertionError(message); + } + } + + /** + * Return the {@link StackTraceElement} for current method's caller. + * + *

For example:

+ *
+     * void foo() {
+     *     bar();
+     * }
+     *
+     * void bar() {
+     *     StackTraceElement caller = getCallerFrame();
+     *
+     *     // Will print "foo".
+     *     System.println(caller.getMethodName());
+     * }
+     * 
+ * + *

Might be {@code null}. If you call this from static void main(String[]). + * + * @return the stack frame of current method's caller. + */ + public static StackTraceElement getCallerFrame() { + /* + * traces = { + * nativeGetStackTrace, + * Thread.getStackTrace, + * getStackFrameAt(2), + * getCurrentFrame, ... [3] + * , ... [3 + 1] + * , ... [3 + 2] + * ... + * } + */ + return getStackFrameAt(2); + } + + /** + * Return the {@link StackTraceElement} for current method. + * + *

For example:

+ *
+     * void foo() {
+     *     bar();
+     * }
+     *
+     * void bar() {
+     *     StackTraceElement current = getCurrentFrame();
+     *
+     *     // Will print "bar".
+     *     System.println(current.getMethodName());
+     * }
+     * 
+ * + * @return the stack frame of current method's caller. + */ + public static StackTraceElement getCurrentFrame() { + /* + * traces = { + * nativeGetStackTrace, + * Thread.getStackTrace, + * getStackFrameAt(1), + * getCurrentFrame, ... [3] + * , ... [3 + 1] + * ... + * } + */ + return getStackFrameAt(1); + } + + /** + * Return specified {@link StackTraceElement} on the call stack, relative to current method. + * + *

For example:

+ *
+     * void main() {
+     *     stub();
+     * }
+     *
+     * void stub() {
+     *     foo();
+     * }
+     * void foo() {
+     *     bar();
+     * }
+     *
+     * void bar() {
+     *     // Will print "bar"
+     *     System.println(getStackFrameAt(0).getMethodName());
+     *     // Will print "foo"
+     *     System.println(getStackFrameAt(1).getMethodName());
+     *     // Will print "stub"
+     *     System.println(getStackFrameAt(2).getMethodName());
+     *     // Will print "main"
+     *     System.println(getStackFrameAt(3).getMethodName());
+     *     // Will print "null"
+     *     System.println(getStackFrameAt(4));
+     *     System.println(getStackFrameAt(-1));
+     * }
+     * 
+ * + * @param offset the offset of the call stack from current method. 0 means current methods, 1 means caller, etc. + * @return the stack frame of current method's caller. + */ + public static StackTraceElement getStackFrameAt(int offset) { + if (offset < 0) { + return null; + } + /* + * traces = { + * nativeGetStackTrace, + * Thread.getStackTrace, + * getStackFrameAt(offset), + * , ... [3 + 0], offset 0 + * , ... [3 + 1], offset 1 + * , ... [3 + 2], offset 2 + * , ... [3 + 3], offset 3 + * ... + * } + */ + StackTraceElement[] traces = Thread.currentThread().getStackTrace(); + if (traces.length < 4 + offset) { + // The stack at offset is underflow... + return null; + } + return traces[3 + offset]; + } +} diff --git a/android/library/src/main/java/serial/Parity.java b/android/library/src/main/java/serial/Parity.java new file mode 100644 index 0000000..b262a5f --- /dev/null +++ b/android/library/src/main/java/serial/Parity.java @@ -0,0 +1,31 @@ +package serial; + +/** + * Enumeration defines the possible parity types for the serial port. + */ +public enum Parity { + /** + * Use none parity type. + * + * This is the default. + */ + None, + /** + * Use odd parity types + */ + Odd, + /** + * Use even parity type + */ + Even, + /** + * Use mark parity type. + * + */ + Mark, + /** + * Use space parity type. + * + */ + Space; +} diff --git a/android/library/src/main/java/serial/PortInfo.java b/android/library/src/main/java/serial/PortInfo.java new file mode 100644 index 0000000..97481b2 --- /dev/null +++ b/android/library/src/main/java/serial/PortInfo.java @@ -0,0 +1,33 @@ +package serial; + +/** + * Created by chzhong on 1/20/16. + */ +public final class PortInfo { + + /** + * Address of the serial port (this can be passed to the constructor of Serial). + */ + public final String port; + + /** + * Human readable description of serial device if available. + */ + public final String description; + + /** + * Hardware ID (e.g. VID:PID of USB serial devices) or "n/a" if not available. + */ + public final String hardwareId; + + PortInfo(String port, String description, String hardwareId) { + this.port = port; + this.description = description; + this.hardwareId = hardwareId; + } + + @Override + public String toString() { + return String.format("%s (%s)", description, port); + } +} diff --git a/android/library/src/main/java/serial/PortNotOpenedException.java b/android/library/src/main/java/serial/PortNotOpenedException.java new file mode 100644 index 0000000..2277216 --- /dev/null +++ b/android/library/src/main/java/serial/PortNotOpenedException.java @@ -0,0 +1,27 @@ +package serial; + +import java.util.Locale; + +/** + * Created by chzhong on 1/20/16. + */ +public class PortNotOpenedException extends IllegalStateException { + + static final String formatMessage(String message, StackTraceElement frame) { + return String.format(Locale.getDefault(), "%s. (%s.%s @ %s:%d)", + message, frame.getClassName(), frame.getMethodName(), + frame.getFileName(), frame.getLineNumber()); + } + + /** + * Constructs a new {@code PortNotOpenedException} with the current stack trace + * and the specified detail message. + * + * @param detailMessage the detail message for this exception. + * @param frame the frame of the wrong call. + */ + PortNotOpenedException(String detailMessage, StackTraceElement frame) { + super(formatMessage(detailMessage, frame)); + } + +} diff --git a/android/library/src/main/java/serial/Serial.java b/android/library/src/main/java/serial/Serial.java new file mode 100644 index 0000000..f3b9ece --- /dev/null +++ b/android/library/src/main/java/serial/Serial.java @@ -0,0 +1,1055 @@ +package serial; + +import java.io.Closeable; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.util.regex.Pattern; + +/** + * Serial Port. + * + * Created by chzhong on 1/20/16. + */ +public class Serial implements Closeable { + + /** + * Baudrate 110 bits/s. + */ + public static final int BAUDRATE_110 = 110; + /** + * Baudrate 300 bits/s. + */ + public static final int BAUDRATE_300 = 300; + /** + * Baudrate 600 bits/s. + */ + public static final int BAUDRATE_600 = 600; + /** + * Baudrate 1200 bits/s. + */ + public static final int BAUDRATE_1200 = 1200; + /** + * Baudrate 2400 bits/s. + */ + public static final int BAUDRATE_2400 = 2400; + /** + * Baudrate 4800 bits/s. + */ + public static final int BAUDRATE_4800 = 4800; + /** + * Baudrate 9600 bits/s. This is the default. + */ + public static final int BAUDRATE_9600 = 9600; + /** + * Baudrate 14400 bits/s. + */ + public static final int BAUDRATE_14400 = 14400; + /** + * Baudrate 28800 bits/s. + */ + public static final int BAUDRATE_28800 = 28800; + /** + * Baudrate 38400 bits/s. + */ + public static final int BAUDRATE_38400 = 38400; + /** + * Baudrate 56000 bits/s. + */ + public static final int BAUDRATE_56000 = 56000; + /** + * Baudrate 57600 bits/s. + */ + public static final int BAUDRATE_57600 = 57600; + /** + * Baudrate 115200 bits/s. + */ + public static final int BAUDRATE_115200 = 115200; + /** + * Baudrate 128000 bits/s. + */ + public static final int BAUDRATE_128000 = 128000; + /** + * Baudrate 153600 bits/s. + */ + public static final int BAUDRATE_153600 = 153600; + /** + * Baudrate 230400 bits/s. + */ + public static final int BAUDRATE_230400 = 230400; + /** + * Baudrate 256000 bits/s. + */ + public static final int BAUDRATE_256000 = 256000; + /** + * Baudrate 460800 bits/s. + */ + public static final int BAUDRATE_460800 = 460800; + /** + * Baudrate 921600 bits/s. + */ + public static final int BAUDRATE_921600 = 921600; + + /** + * End-of-line: line-feed (\n). This is the default. + */ + public static final String EOL_LF = "\n"; + /** + * End-of-line: carriage-return (\n). + */ + public static final String EOL_CR = "\r"; + /** + * End-of-line: CR & LF (\r\n). + */ + public static final String EOL_CRLF = "\r\n"; + + /** + * Default charset. + */ + public static final Charset CHARSET_DEFAULT; + + /** + * UTF-8 charset. + */ + public static final Charset CHARSET_UTF8; + + /** + * ISO-8859-1 charset. + */ + public static final Charset CHARSET_ISO_8859_1; + + /** + * US-ASCII charset. + */ + public static final Charset CHARSET_US_ASCII; + + /** + * UTF-16 charset. + */ + public static final Charset CHARSET_UTF16; + + /** + * UTF-16LE charset. + */ + public static final Charset CHARSET_UTF16LE; + /** + * UTF-16BE charset. + */ + public static final Charset CHARSET_UTF16BE; + + + private static final Pattern FIELD_DELIM = Pattern.compile("\\t"); + + static { + CHARSET_DEFAULT = Charset.defaultCharset(); + CHARSET_UTF8 = Charset.forName("UTF-8"); + CHARSET_ISO_8859_1 = Charset.forName("ISO-8859-1"); + CHARSET_US_ASCII = Charset.forName("US-ASCII"); + CHARSET_UTF16 = Charset.forName("UTF-16"); + CHARSET_UTF16LE = Charset.forName("UTF-16LE"); + CHARSET_UTF16BE = Charset.forName("UTF-16BE"); + + System.loadLibrary("serial"); + } + /** + * List available ports on this device. + * + * @return an array of available ports. + */ + public static PortInfo[] listPorts() { + PortInfo[] ports; + String[] portDescs = native_listPorts(); + if (portDescs != null && portDescs.length > 0) { + ports = new PortInfo[portDescs.length]; + int index = 0; + for (String portDesc : portDescs) { + String[] parts = FIELD_DELIM.split(portDesc); + ports[index++] = new PortInfo(parts[0], parts[1], parts[2]); + } + } else { + ports = null; + } + return ports; + } + + /** + * Builder for {@link Serial}. + */ + public static class Builder { + + private String mPort; + private int mBaudrate = BAUDRATE_9600; + private Timeout mTimeout = Timeout.simpleTimeout(1000); + private ByteSize mBytesize = ByteSize.EightBits; + private Parity mParity = Parity.None; + private Stopbits mStopbits = Stopbits.One; + private FlowControl mFlowcontrol = FlowControl.None; + + /** + * Initial a {@link serial.Serial.Builder} for serial port. + * + */ + public Builder() { + } + + /** + * Initial a {@link serial.Serial.Builder} for serial port. + * + * @param port the path of the serial port. + */ + public Builder(String port) { + this.mPort = port; + } + + /** + * Initial a {@link serial.Serial.Builder} for serial port. + * + * @param port the path of the serial port. + * @param baudrate the baudrate to use. + */ + public Builder(String port, int baudrate) { + this.mPort = port; + this.mBaudrate = baudrate; + } + + /** + * @see Serial#setPort(String) + */ + public Builder setPort(String port) { + mPort = port; + return this; + } + + /** + * @see Serial#setBaudrate(int) + */ + public Builder setBaudrate(int baudrate) { + mBaudrate = baudrate; + return this; + } + + /** + * @see Serial#setTimeout(Timeout) + */ + public Builder setTimeout(Timeout timeout) { + mTimeout = timeout; + return this; + } + + /** + * @see Serial#setBytesize(ByteSize) + */ + public Builder setBytesize(ByteSize bytesize) { + mBytesize = bytesize; + return this; + } + + /** + * @see Serial#setParity(Parity) + */ + public Builder setParity(Parity parity) { + mParity = parity; + return this; + } + + /** + * @see Serial#setStopbits(Stopbits) + */ + public Builder setStopbits(Stopbits stopbits) { + mStopbits = stopbits; + return this; + } + + /** + * @see Serial#setFlowcontrol(FlowControl) + */ + public Builder setFlowcontrol(FlowControl flowcontrol) { + mFlowcontrol = flowcontrol; + return this; + } + + /** + * Create the serial object with give parameters. + * + * @return an instance of {@link Serial}. + * + * @throws SerialIOException I/O error. + */ + public Serial create() throws SerialIOException { + return new Serial(mPort, mBaudrate, mTimeout, mBytesize, mParity, mStopbits, mFlowcontrol); + } + } + + /** + * Creates a Serial object and opens the port if a port is specified, + * otherwise it remains closed until serial::Serial::open is called. + * + * @param port A string containing the address of the serial port, + * which would be something like 'COM1' on Windows and '/dev/ttyS0' + * on Linux. + * + * @param baudrate An unsigned 32-bit integer that represents the baudrate + * + * @param timeout A serial::Timeout struct that defines the timeout + * conditions for the serial port. \see serial::Timeout + * + * @\param bytesize Size of each byte in the serial transmission of data, + * default is eightbits, possible values are: fivebits, sixbits, sevenbits, + * eightbits + * + * @param parity Method of parity, default is parity_none, possible values + * are: parity_none, parity_odd, parity_even + * + * @param stopbits Number of stop bits used, default is stopbits_one, + * possible values are: stopbits_one, stopbits_one_point_five, stopbits_two + * + * @param flowcontrol Type of flowcontrol used, default is + * flowcontrol_none, possible values are: flowcontrol_none, + * flowcontrol_software, flowcontrol_hardware + * + * @throws SerialException Generic serial error. + * @throws SerialIOException I/O error. + * @throws IllegalArgumentException Invalid arguments are given. + */ + private Serial(String port, + int baudrate, + Timeout timeout, + ByteSize bytesize, + Parity parity, + Stopbits stopbits, + FlowControl flowcontrol) throws SerialIOException { + this.mTimeout = timeout; + this.mNativeSerial = native_create(port, baudrate, + new int[]{ + timeout.inter_byte_timeout, + timeout.read_timeout_constant, + timeout.read_timeout_multiplier, + timeout.write_timeout_constant, + timeout.read_timeout_multiplier + }, + bytesize.bitLength, parity.ordinal(), stopbits.value, flowcontrol.ordinal() + ); + if (mNativeSerial != 0) + this.mOpened = native_isOpen(mNativeSerial); + } + + private boolean mOpened; + private long mNativeSerial; + private Timeout mTimeout; + + @Override + protected void finalize() throws Throwable { + if (mNativeSerial != 0) { + native_close(mNativeSerial); + native_destory(mNativeSerial); + mNativeSerial = 0; + mOpened = false; + } + super.finalize(); + } + + private void checkValid() { + if (0 == mNativeSerial) { + /* + ... + serial.checkValid : 0 + serial.xxx : 1 + : 2 + */ + StackTraceElement frame = Log.getStackFrameAt(2); + String msg = PortNotOpenedException.formatMessage("Native port is invalid, please create another instance.", frame); + throw new IllegalStateException(msg); + } + } + + private void checkOpened() { + if (!mOpened) { + /* + ... + serial.checkOpened : 0 + serial.xxx : 1 + : 2 + */ + StackTraceElement frame = Log.getStackFrameAt(2); + throw new PortNotOpenedException("Native port is not opened.", frame); + } + } + + /** + * Determine whether this instance has a valid port. + * + * @return true if native port is valid, false otherwise. + */ + public boolean isValid() { + return mNativeSerial != 0; + } + + /** + * Opens the serial port as long as the port is set and the port isn't + * already open. + * + * If the port is provided to the constructor then an explicit call to open + * is not needed. + * + * @see #Serial(String, int, Timeout, ByteSize, Parity, Stopbits, FlowControl) + * + * @throws SerialException Generic serial error. + * @throws SerialIOException I/O error. + * @throws IllegalArgumentException Invalid arguments are given. + */ + public void open() throws SerialIOException { + if (mOpened) + return; + checkValid(); + native_open(mNativeSerial); + } + + + /** Gets the open status of the serial port. + * + * @return Returns true if the port is open, false otherwise. + */ + public boolean isOpen () { + checkValid(); + return native_isOpen(mNativeSerial); + } + + /** + * Closes the serial port. + * + * @throws IOException I/O error. + */ + public void close () throws IOException { + if (mNativeSerial == 0 || !mOpened) + return; + native_close(mNativeSerial); + mOpened = false; + } + + /** + * Return the number of characters in the buffer. + * + * @throws SerialIOException I/O Error. + */ + public int available () throws SerialIOException { + checkOpened(); + return native_available(mNativeSerial); + } + + /** + * Block until there is serial data to read or read_timeout_constant + * number of milliseconds have elapsed. The return value is true when + * the function exits with the port in a readable state, false otherwise + * (due to timeout or select interruption). + * + * @throws SerialIOException I/O Error. + */ + public boolean waitReadable () throws SerialIOException { + checkOpened(); + return native_waitReadable(mNativeSerial); + } + + /** + * Block for a period of time corresponding to the transmission time of + * count characters at present serial settings. This may be used in con- + * junction with waitReadable to read larger blocks of data from the + * port. + */ + public void waitByteTimes (int count) { + checkOpened(); + native_waitByteTimes(mNativeSerial, count); + } + + /** + * Read a given amount of bytes from the serial port into a given buffer. + * + * The read function will return in one of three cases: + * * The number of requested bytes was read. + * * In this case the number of bytes requested will match the size_t + * returned by read. + * * A timeout occurred, in this case the number of bytes read will not + * match the amount requested, but no exception will be thrown. One of + * two possible timeouts occurred: + * * The inter byte timeout expired, this means that number of + * milliseconds elapsed between receiving bytes from the serial port + * exceeded the inter byte timeout. + * * The total timeout expired, which is calculated by multiplying the + * read timeout multiplier by the number of requested bytes and then + * added to the read timeout constant. If that total number of + * milliseconds elapses after the initial call to read a timeout will + * occur. + * * An exception occurred, in this case an actual exception will be thrown. + * + * @param buffer An array of at least the requested size. + * @param offset the offset of the buffer to receive data. + * @param size how many bytes to be read. + * + * @return A size_t representing the number of bytes read as a result of the + * call to read. + * + * @throws SerialIOException I/O Error. + */ + public int read (byte[] buffer, int offset, int size) throws SerialIOException { + checkOpened(); + return native_read(mNativeSerial, buffer, offset, size); + } + + /** + * Read all data available from the serial port. + * + * @return A buffer that contains all available data. + * + * @throws SerialIOException I/O Error. + */ + public byte[] read () throws SerialIOException { + checkOpened(); + int available = native_available(mNativeSerial); + if (available < 0) + return null; + else if (available == 0) + return new byte[0]; + byte[] buffer = new byte[available]; + int bytesRead = native_read(mNativeSerial, buffer, 0, buffer.length); + if (bytesRead < buffer.length) { + byte[] out = new byte[bytesRead]; + System.arraycopy(buffer, 0, out, 0, bytesRead); + buffer = out; + } + return buffer; + } + + /** Read a given amount of bytes from the serial port into a give buffer. + * + * @param buffer A reference to a std::vector of uint8_t. + * @param size A size_t defining how many bytes to be read. + * + * @return A size_t representing the number of bytes read as a result of the + * call to read. + * + * @throws SerialIOException I/O Error. + */ + public int read (ByteBuffer buffer, int size /*= 1*/) throws SerialIOException { + checkOpened(); + byte[] buf = new byte[size]; + int bytesRead = read(buf, 0, buf.length); + buffer.put(buf, 0, bytesRead); + return bytesRead; + } + + /** + * Read a given amount of bytes from the serial port into a give buffer. + * + * @param buffer A reference to a std::string. + * @param size A size_t defining how many bytes to be read. + * @param charset The charset of the data. + * + * @return A size_t representing the number of bytes read as a result of the + * call to read. + * + * @throws SerialIOException I/O Error. + */ + public int read(StringBuilder buffer, int size /*= 1*/, Charset charset) throws SerialIOException { + checkOpened(); + if (charset == null) + charset = CHARSET_DEFAULT; + byte[] buf = new byte[size]; + int bytesRead = read(buf, 0, buf.length); + CharBuffer chars = charset.decode(ByteBuffer.wrap(buf, 0, bytesRead)); + buffer.append(chars.toString()); + return bytesRead; + } + + /** Read a given amount of bytes from the serial port and return a string + * containing the data. + * + * @param size A size_t defining how many bytes to be read. + * + * @return A std::string containing the data read from the port. + * + * @throws SerialIOException I/O Error. + * + */ + public String read(int size, Charset charset) throws SerialIOException { + checkOpened(); + if (charset == null) + charset = CHARSET_DEFAULT; + StringBuilder sb = new StringBuilder(); + read(sb, size, charset); + return sb.toString(); + } + + /** Reads in a line or until a given delimiter has been processed. + * + * Reads from the serial port until a single line has been read. + * + * @param buffer A std::string reference used to store the data. + * @param size A maximum length of a line, defaults to 65536 (2^16) + * @param eol A string to match against for the EOL. + * + * @return A size_t representing the number of bytes read. + * + * @throws SerialIOException I/O Error. + */ + public int readline (StringBuilder buffer, int size /*= 65536*/, String eol /*= "\n"*/) throws SerialIOException { + checkOpened(); + if (eol == null) + eol = EOL_LF; + String line = native_readline(mNativeSerial, size, eol); + buffer.append(line); + return line.getBytes().length; + } + + /** Reads in a line or until a given delimiter has been processed. + * + * Reads from the serial port until a single line has been read. + * + * @param size A maximum length of a line, defaults to 65536 (2^16) + * @param eol A string to match against for the EOL. + * + * @return A std::string containing the line. + * + * @throws SerialIOException I/O Error. + */ + public String readline (int size /*= 65536*/, String eol /*= "\n"*/) throws SerialIOException { + checkOpened(); + if (eol == null) + eol = EOL_LF; + return native_readline(mNativeSerial, size, eol); + } + + /** Reads in multiple lines until the serial port times out. + * + * This requires a timeout > 0 before it can be run. It will read until a + * timeout occurs and return a list of strings. + * + * @param size A maximum length of combined lines, defaults to 65536 (2^16) + * + * @param eol A string to match against for the EOL. + * + * @return A array containing the lines. + * + * @throws SerialIOException I/O Error. + */ + public String[] readlines (int size /*= 65536*/, String eol /*= "\n"*/) throws SerialIOException { + checkOpened(); + if (eol == null) + eol = EOL_LF; + return native_readlines(mNativeSerial, size, eol); + } + + /** Write a string to the serial port. + * + * @param data A const reference containing the data to be written + * to the serial port. + * + * @param size A size_t that indicates how many bytes should be written from + * the given data buffer. + * + * @return A size_t representing the number of bytes actually written to + * the serial port. + * + * @throws SerialIOException I/O Error. + */ + public int write (byte[] data, int size) throws SerialIOException { + checkOpened(); + return native_write(mNativeSerial, data, size); + } + + /** Write a string to the serial port. + * + * @param s A const reference containing the data to be written + * to the serial port. + * + * @return A size_t representing the number of bytes actually written to + * the serial port. + * + * @throws SerialIOException I/O Error. + */ + public int write (String s) throws SerialIOException { + checkOpened(); + byte[] data = s.getBytes(); + return native_write(mNativeSerial, data, data.length); + } + + /** Sets the serial port identifier. + * + * @param port A const std::string reference containing the address of the + * serial port, which would be something like 'COM1' on Windows and + * '/dev/ttyS0' on Linux. + * + * @throws IllegalArgumentException + */ + public void setPort (String port) { + checkValid(); + native_setPort(mNativeSerial, port); + } + + /** Gets the serial port identifier. + * + * @see #setPort(String) + * + */ + public String getPort () { + checkValid(); + return native_getPort(mNativeSerial); + } + + /** Sets the timeout for reads and writes using the Timeout struct. + * + * There are two timeout conditions described here: + * * The inter byte timeout: + * * The inter_byte_timeout component of serial::Timeout defines the + * maximum amount of time, in milliseconds, between receiving bytes on + * the serial port that can pass before a timeout occurs. Setting this + * to zero will prevent inter byte timeouts from occurring. + * * Total time timeout: + * * The constant and multiplier component of this timeout condition, + * for both read and write, are defined in serial::Timeout. This + * timeout occurs if the total time since the read or write call was + * made exceeds the specified time in milliseconds. + * * The limit is defined by multiplying the multiplier component by the + * number of requested bytes and adding that product to the constant + * component. In this way if you want a read call, for example, to + * timeout after exactly one second regardless of the number of bytes + * you asked for then set the read_timeout_constant component of + * serial::Timeout to 1000 and the read_timeout_multiplier to zero. + * This timeout condition can be used in conjunction with the inter + * byte timeout condition with out any problems, timeout will simply + * occur when one of the two timeout conditions is met. This allows + * users to have maximum control over the trade-off between + * responsiveness and efficiency. + * + * Read and write functions will return in one of three cases. When the + * reading or writing is complete, when a timeout occurs, or when an + * exception occurs. + * + * @param timeout A serial::Timeout struct containing the inter byte + * timeout, and the read and write timeout constants and multipliers. + * + * @see Timeout + */ + public void setTimeout (Timeout timeout) { + checkValid(); + if (null == timeout) + timeout = new Timeout(); + this.mTimeout = timeout; + native_setTimeout(mNativeSerial, new int[] { + timeout.inter_byte_timeout, + timeout.read_timeout_constant, + timeout.read_timeout_multiplier, + timeout.write_timeout_constant, + timeout.read_timeout_multiplier + }); + } + + /** + * Sets the timeout for reads and writes. + */ + public void setTimeout (int inter_byte_timeout, int read_timeout_constant, + int read_timeout_multiplier, int write_timeout_constant, + int write_timeout_multiplier) + { + Timeout timeout = new Timeout(inter_byte_timeout, read_timeout_constant, + read_timeout_multiplier, write_timeout_constant, + write_timeout_multiplier); + setTimeout(timeout); + } + + /** Gets the timeout for reads in seconds. + * + * @return A Timeout struct containing the inter_byte_timeout, and read + * and write timeout constants and multipliers. + * + * @see #setTimeout(Timeout) + */ + public Timeout getTimeout () { + return mTimeout; + } + + /** Sets the baudrate for the serial port. + * + * Possible baudrates depends on the system but some safe baudrates include: + * 110, 300, 600, 1200, 2400, 4800, 9600 (default), 14400, 19200, 28800, 38400, 56000, + * 57600, 115200 + * Some other baudrates that are supported by some comports: + * 128000, 153600, 230400, 256000, 460800, 921600 + * + * @param baudrate An integer that sets the baud rate for the serial port. + * + * @throws SerialIOException I/O Error. + */ + public void setBaudrate (int baudrate) throws SerialIOException { + checkValid(); + native_setBaudrate(mNativeSerial, baudrate); + } + + /** Gets the baudrate for the serial port. + * + * @return An integer that sets the baud rate for the serial port. + * + * @see #setBaudrate(int) + * + */ + public int getBaudrate () { + checkValid(); + return native_getBaudrate(mNativeSerial); + } + + /** + * Sets the bytesize for the serial port. + * + * @param bytesize Size of each byte in the serial transmission of data, + * default is eightbits, possible values are: fivebits, sixbits, sevenbits, + * eightbits + * + * @throws SerialIOException I/O Error. + */ + public void setBytesize (ByteSize bytesize) throws SerialIOException { + checkValid(); + if (null == bytesize) + bytesize = ByteSize.EightBits; + native_setBytesize(mNativeSerial, bytesize.bitLength); + } + + /** + * Gets the bytesize for the serial port. + * + * @see #setBytesize(ByteSize) + * + */ + public ByteSize getBytesize () { + checkValid(); + return ByteSize.fromValue(native_getBytesize(mNativeSerial)); + } + + /** + * Sets the parity for the serial port. + * + * @param parity Method of parity, default is parity_none, possible values + * are: parity_none, parity_odd, parity_even + * @throws SerialIOException I/O Error. + * + */ + public void setParity (Parity parity) throws SerialIOException { + checkValid(); + if (null == parity) + parity = Parity.None; + native_setParity(mNativeSerial, parity.ordinal()); + } + + /** Gets the parity for the serial port. + * + * @see #setParity(Parity) + * + */ + public Parity getParity() { + checkValid(); + return Parity.values()[native_getParity(mNativeSerial)]; + } + + /** + * Sets the stopbits for the serial port. + * + * @param stopbits Number of stop bits used, default is stopbits_one, + * possible values are: stopbits_one, stopbits_one_point_five, stopbits_two + * @throws SerialIOException I/O Error. + */ + public void setStopbits (Stopbits stopbits) throws SerialIOException { + checkValid(); + if (null == stopbits) + stopbits = Stopbits.One; + native_setStopbits(mNativeSerial, stopbits.value); + } + + /** + * Gets the stopbits for the serial port. + * + * @see #setStopbits(Stopbits) + * + */ + public Stopbits getStopbits () { + checkValid(); + return Stopbits.fromValue(native_getStopbits(mNativeSerial)); + } + + /** + * Sets the flow control for the serial port. + * + * @param flowcontrol Type of flowcontrol used, default is flowcontrol_none, + * possible values are: flowcontrol_none, flowcontrol_software, + * flowcontrol_hardware + * + * @throws SerialIOException I/O Error. + */ + public void setFlowcontrol (FlowControl flowcontrol) throws SerialIOException { + checkValid(); + if (null == flowcontrol) + flowcontrol = FlowControl.None; + native_setFlowcontrol(mNativeSerial, flowcontrol.ordinal()); + } + + /** + * Gets the flow control for the serial port. + * + * @see #setFlowcontrol(FlowControl) + * + */ + public FlowControl getFlowcontrol () { + checkValid(); + return FlowControl.values()[native_getFlowcontrol(mNativeSerial)]; + } + + /** Flush the input and output buffers */ + public void flush () { + checkOpened(); + native_flush(mNativeSerial); + } + + /** Flush only the input buffer */ + public void flushInput () { + checkOpened(); + native_flushInput(mNativeSerial); + } + + /** Flush only the output buffer */ + public void flushOutput () { + checkOpened(); + native_flushOutput(mNativeSerial); + } + + /** Sends the RS-232 break signal. See tcsendbreak(3). */ + public void sendBreak (int duration) { + checkOpened(); + native_sendBreak(mNativeSerial, duration); + } + + /** Set the break condition to a given level. */ + public void setBreak (boolean level) { + checkOpened(); + native_setBreak(mNativeSerial, level); + } + + /** Set the break condition to true level. */ + public void setBreak () { + checkOpened(); + setBreak(true); + } + + /** Set the RTS handshaking line to the given level.*/ + public void setRTS (boolean level) { + checkOpened(); + native_setRTS(mNativeSerial, level); + } + + /** Set the RTS handshaking line to the true level.*/ + public void setRTS () { + checkOpened(); + setRTS(true); + } + + /** Set the DTR handshaking line to the given level. */ + public void setDTR (boolean level) { + checkOpened(); + native_setDTR(mNativeSerial, level); + } + + /** Set the DTR handshaking line to the given level. */ + public void setDTR () { + checkOpened(); + setDTR(true); + } + + /** + * Blocks until CTS, DSR, RI, CD changes or something interrupts it. + * + * Can throw an exception if an error occurs while waiting. + * You can check the status of CTS, DSR, RI, and CD once this returns. + * Uses TIOCMIWAIT via ioctl if available (mostly only on Linux) with a + * resolution of less than +-1ms and as good as +-0.2ms. Otherwise a + * polling method is used which can give +-2ms. + * + * @return Returns true if one of the lines changed, false if something else + * occurred. + * + * @throws SerialException + */ + public boolean waitForChange () { + checkOpened(); + return native_waitForChange(mNativeSerial); + } + + /*! Returns the current status of the CTS line. */ + public boolean getCTS () { + checkOpened(); + return native_getCTS(mNativeSerial); + } + + /** Returns the current status of the DSR line. */ + public boolean getDSR () { + checkOpened(); + return native_getDSR(mNativeSerial); + } + + /** Returns the current status of the RI line. */ + public boolean getRI () { + checkOpened(); + return native_getRI(mNativeSerial); + } + + /** Returns the current status of the CD line. */ + public boolean getCD () { + checkOpened(); + return native_getCD(mNativeSerial); + } + + + private static native String[] native_listPorts(); + + private static native long native_create(String port, int baudrate, int[] ints, int bytesize, int parity, int stopbits, int flowcontrol) throws IllegalArgumentException, SerialException, SerialIOException; + private static native void native_destory(long nativePtr); + private static native void native_open(long nativePtr) throws IllegalArgumentException, SerialException, SerialIOException; + private static native boolean native_isOpen(long nativePtr); + private static native void native_close(long nativePtr) throws SerialIOException; + private static native int native_available(long nativePtr) throws SerialIOException; + private static native boolean native_waitReadable(long nativePtr) throws SerialIOException; + private static native void native_waitByteTimes(long nativePtr, int count); + private static native int native_read(long nativePtr, byte[] buffer, int offset, int size) throws IllegalArgumentException, SerialException, SerialIOException; + private static native String native_readline(long nativePtr, int size, String eol) throws IllegalArgumentException, SerialException, SerialIOException; + private static native String[] native_readlines(long nativePtr, int size, String eol) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_write(long nativePtr, byte[] buffer,int size) throws IllegalArgumentException, SerialException, SerialIOException; + + private static native void native_setPort(long nativePtr, String port); + private static native String native_getPort(long nativePtr); + + private static native void native_setBaudrate(long nativePtr, int baudrate) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_getBaudrate(long nativePtr); + private static native void native_setTimeout(long nativePtr, int[] timeouts); + private static native int[] native_getTimeout(long nativePtr); + + private static native void native_setBytesize(long nativePtr, int bytesize) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_getBytesize(long nativePtr); + private static native void native_setParity(long nativePtr, int parity) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_getParity(long nativePtr); + private static native void native_setStopbits(long nativePtr, int stopbits) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_getStopbits(long nativePtr); + private static native void native_setFlowcontrol(long nativePtr, int flowcontrol) throws IllegalArgumentException, SerialException, SerialIOException; + private static native int native_getFlowcontrol(long nativePtr); + + private static native void native_flush(long nativePtr); + private static native void native_flushInput(long nativePtr); + private static native void native_flushOutput(long nativePtr); + + private static native void native_sendBreak(long nativePtr, int duration) throws SerialException; + private static native void native_setBreak(long nativePtr, boolean level) throws SerialException; + private static native void native_setRTS(long nativePtr, boolean level) throws SerialException; + private static native void native_setDTR(long nativePtr, boolean level) throws SerialException; + + private static native boolean native_waitForChange(long nativePtr) throws SerialException; + + private static native boolean native_getCTS(long nativePtr) throws SerialException; + private static native boolean native_getDSR(long nativePtr) throws SerialException; + private static native boolean native_getRI(long nativePtr) throws SerialException; + private static native boolean native_getCD(long nativePtr) throws SerialException; + +} diff --git a/android/library/src/main/java/serial/SerialException.java b/android/library/src/main/java/serial/SerialException.java new file mode 100644 index 0000000..e2bde59 --- /dev/null +++ b/android/library/src/main/java/serial/SerialException.java @@ -0,0 +1,27 @@ +package serial; + +/** + * Created by chzhong on 1/20/16. + */ +public class SerialException extends RuntimeException { + /** + * Constructs a new {@code SerialException} with the current stack trace + * and the specified detail message. + * + * @param detailMessage the detail message for this exception. + */ + public SerialException(String detailMessage) { + super(detailMessage); + } + + /** + * Constructs a new {@code PortNotOpenedException} with the current stack trace, + * the specified detail message and the specified cause. + * + * @param detailMessage the detail message for this exception. + * @param throwable + */ + public SerialException(String detailMessage, Throwable throwable) { + super(detailMessage, throwable); + } +} diff --git a/android/library/src/main/java/serial/SerialIOException.java b/android/library/src/main/java/serial/SerialIOException.java new file mode 100644 index 0000000..5156458 --- /dev/null +++ b/android/library/src/main/java/serial/SerialIOException.java @@ -0,0 +1,31 @@ +package serial; + +import java.io.IOException; + +/** + * Created by chzhong on 1/20/16. + */ +public class SerialIOException extends IOException { + + /** + * Constructs a new {@code SerialIOException} with its stack trace and detail + * message filled in. + * + * @param detailMessage the detail message for this exception. + */ + public SerialIOException(String detailMessage) { + super(detailMessage); + } + + /** + * Constructs a new instance of this class with detail message and cause + * filled in. + * + * @param message The detail message for the exception. + * @param cause The detail cause for the exception. + * @since 1.6 + */ + public SerialIOException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/android/library/src/main/java/serial/Stopbits.java b/android/library/src/main/java/serial/Stopbits.java new file mode 100644 index 0000000..f2b4334 --- /dev/null +++ b/android/library/src/main/java/serial/Stopbits.java @@ -0,0 +1,43 @@ +package serial; + +/** + * Enumeration defines the possible stopbit types for the serial port. + */ +public enum Stopbits { + /** + * Use 1 as stop bit. + * + * This is the default. + */ + One(1), + /** + * Use 2 as stop bit. + */ + Two(2), + /** + * Use 1.5 as stopbit. + */ + OnePointFive(3); + + /** + * Internal value of the enumeration. + */ + public final int value; + + Stopbits(int value) { + this.value = value; + } + + static Stopbits fromValue(int value) { + switch (value) { + case 1: + return One; + case 2: + return Two; + case 3: + return OnePointFive; + default: + throw new IllegalArgumentException("Invalid value."); + } + } +} diff --git a/android/library/src/main/java/serial/Timeout.java b/android/library/src/main/java/serial/Timeout.java new file mode 100644 index 0000000..d7cd49a --- /dev/null +++ b/android/library/src/main/java/serial/Timeout.java @@ -0,0 +1,77 @@ +package serial; + +/** + * Structure for setting the timeout of the serial port, times are + * in milliseconds. + * + * In order to disable the interbyte timeout, set it to {@link #MAX}. + */ +public final class Timeout { + + /** + * Value that represents interbyte timeout should be disabled. + * + * This is an unsigned value. + */ + public static final int MAX = -1; + + /** + * Convenience function to generate Timeout structs using a + * single absolute timeout. + * + * @param timeout A long that defines the time in milliseconds until a + * timeout occurs after a call to read or write is made. + * @return Timeout struct that represents this simple timeout provided. + */ + public static final Timeout simpleTimeout(int timeout) { + return new Timeout(MAX, timeout, 0, timeout, 0); + } + + /** + * Number of milliseconds between bytes received to timeout on. + */ + int inter_byte_timeout; + /** + * A constant number of milliseconds to wait after calling read. + */ + int read_timeout_constant; + /** + * A multiplier against the number of requested bytes to wait after + * calling read. + */ + int read_timeout_multiplier; + /** + * A constant number of milliseconds to wait after calling write. + */ + int write_timeout_constant; + /** + * A multiplier against the number of requested bytes to wait after + * calling write. + */ + int write_timeout_multiplier; + + public Timeout() { + this(0, 0, 0, 0, 0); + } + + /** + * Convenience function to generate Timeout structs using a + * single absolute timeout. + * + * @param timeout A long that defines the time in milliseconds until a + * timeout occurs after a call to read or write is made. + * @return Timeout struct that represents this simple timeout provided. + */ + public Timeout(int timeout) { + this(MAX, timeout, 0, timeout, 0); + } + + public Timeout(int inter_byte_timeout, int read_timeout_constant, int read_timeout_multiplier, int write_timeout_constant, int write_timeout_multiplier) { + this.inter_byte_timeout = inter_byte_timeout; + this.read_timeout_constant = read_timeout_constant; + this.read_timeout_multiplier = read_timeout_multiplier; + this.write_timeout_constant = write_timeout_constant; + this.write_timeout_multiplier = write_timeout_multiplier; + } + +} diff --git a/android/library/src/main/jni/Android.mk b/android/library/src/main/jni/Android.mk new file mode 100644 index 0000000..ca6ce22 --- /dev/null +++ b/android/library/src/main/jni/Android.mk @@ -0,0 +1,25 @@ +LOCAL_PATH := $(call my-dir) + +$(call import-add-path,$(LOCAL_PATH)/libs) + +include $(CLEAR_VARS) + +LOCAL_MODULE := serial +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/include \ + $(LOCAL_PATH)/libs + +LOCAL_SRC_FILES := glob.c \ + serial.cc \ + serial_unix.cc \ + serial_jni.cc \ + list_ports_linux.cc \ + jni_utility.cc \ + jni_main.cc + +LOCAL_STATIC_LIBRARIES += nativehelper +LOCAL_LDLIBS := -llog -lz + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,nativehelper) diff --git a/android/library/src/main/jni/Application.mk b/android/library/src/main/jni/Application.mk new file mode 100644 index 0000000..16fd494 --- /dev/null +++ b/android/library/src/main/jni/Application.mk @@ -0,0 +1,13 @@ +# NDK_TOOLCHAIN_VERSION := clang + +ifeq ($(NDK_DEBUG), 1) +APP_OPTIM := debug +else +APP_OPTIM := release +endif + +APP_PLATFORM := android-16 +APP_ABI := armeabi-v7a x86 +APP_STL := gnustl_static +#APP_CFLAGS := -std=gnu11 +APP_CPPFLAGS := -fexceptions \ No newline at end of file diff --git a/android/library/src/main/jni/build-jni.sh b/android/library/src/main/jni/build-jni.sh new file mode 100755 index 0000000..2376fe6 --- /dev/null +++ b/android/library/src/main/jni/build-jni.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +ARGS=$(getopt -o "d" -l "debug" -n "build-jni.sh" -- "$@"); + +eval set -- "$ARGS"; + +JNI_ARGS="NDK_LIBS_OUT=../jniLibs" + +while true; do + case "$1" in + -d|--debug) + shift + JNI_ARGS="$JNI_ARGS NDK_DEBUG=1" + break; + ;; + --) + shift + ;; + esac +done + +# Remove '--' +shift + +ndk-build $JNI_ARGS \ No newline at end of file diff --git a/android/library/src/main/jni/glob.c b/android/library/src/main/jni/glob.c new file mode 100644 index 0000000..cec80ed --- /dev/null +++ b/android/library/src/main/jni/glob.c @@ -0,0 +1,906 @@ +/* + * Natanael Arndt, 2011: removed collate.h dependencies + * (my changes are trivial) + * + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Guido van Rossum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; +#endif /* LIBC_SCCS and not lint */ +#include +__FBSDID("$FreeBSD$"); + +/* + * glob(3) -- a superset of the one defined in POSIX 1003.2. + * + * The [!...] convention to negate a range is supported (SysV, Posix, ksh). + * + * Optional extra services, controlled by flags not defined by POSIX: + * + * GLOB_QUOTE: + * Escaping convention: \ inhibits any special meaning the following + * character might have (except \ at end of string is retained). + * GLOB_MAGCHAR: + * Set in gl_flags if pattern contained a globbing character. + * GLOB_NOMAGIC: + * Same as GLOB_NOCHECK, but it will only append pattern if it did + * not contain any magic characters. [Used in csh style globbing] + * GLOB_ALTDIRFUNC: + * Use alternately specified directory access functions. + * GLOB_TILDE: + * expand ~user/foo to the /home/dir/of/user/foo + * GLOB_BRACE: + * expand {1,2}{a,b} to 1a 1b 2a 2b + * gl_matchc: + * Number of matches in the current invocation of glob. + */ + +/* + * Some notes on multibyte character support: + * 1. Patterns with illegal byte sequences match nothing - even if + * GLOB_NOCHECK is specified. + * 2. Illegal byte sequences in filenames are handled by treating them as + * single-byte characters with a value of the first byte of the sequence + * cast to wchar_t. + * 3. State-dependent encodings are not currently supported. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DOLLAR '$' +#define DOT '.' +#define EOS '\0' +#define LBRACKET '[' +#define NOT '!' +#define QUESTION '?' +#define QUOTE '\\' +#define RANGE '-' +#define RBRACKET ']' +#define SEP '/' +#define STAR '*' +#define TILDE '~' +#define UNDERSCORE '_' +#define LBRACE '{' +#define RBRACE '}' +#define SLASH '/' +#define COMMA ',' + +#ifndef DEBUG + +#define M_QUOTE 0x8000000000ULL +#define M_PROTECT 0x4000000000ULL +#define M_MASK 0xffffffffffULL +#define M_CHAR 0x00ffffffffULL + +typedef uint_fast64_t Char; + +#else + +#define M_QUOTE 0x80 +#define M_PROTECT 0x40 +#define M_MASK 0xff +#define M_CHAR 0x7f + +typedef char Char; + +#endif + + +#define CHAR(c) ((Char)((c)&M_CHAR)) +#define META(c) ((Char)((c)|M_QUOTE)) +#define M_ALL META('*') +#define M_END META(']') +#define M_NOT META('!') +#define M_ONE META('?') +#define M_RNG META('-') +#define M_SET META('[') +#define ismeta(c) (((c)&M_QUOTE) != 0) + + +static int compare(const void *, const void *); +static int g_Ctoc(const Char *, char *, size_t); +static int g_lstat(Char *, struct stat *, glob_t *); +static DIR *g_opendir(Char *, glob_t *); +static const Char *g_strchr(const Char *, wchar_t); +#ifdef notdef +static Char *g_strcat(Char *, const Char *); +#endif +static int g_stat(Char *, struct stat *, glob_t *); +static int glob0(const Char *, glob_t *, size_t *); +static int glob1(Char *, glob_t *, size_t *); +static int glob2(Char *, Char *, Char *, Char *, glob_t *, size_t *); +static int glob3(Char *, Char *, Char *, Char *, Char *, glob_t *, size_t *); +static int globextend(const Char *, glob_t *, size_t *); +static const Char * + globtilde(const Char *, Char *, size_t, glob_t *); +static int globexp1(const Char *, glob_t *, size_t *); +static int globexp2(const Char *, const Char *, glob_t *, int *, size_t *); +static int match(Char *, Char *, Char *); +#ifdef DEBUG +static void qprintf(const char *, Char *); +#endif + +int +glob(const char *pattern, int flags, int (*errfunc)(const char *, int), glob_t *pglob) +{ + const char *patnext; + size_t limit; + Char *bufnext, *bufend, patbuf[MAXPATHLEN], prot; + mbstate_t mbs; + wchar_t wc; + size_t clen; + + patnext = pattern; + if (!(flags & GLOB_APPEND)) { + pglob->gl_pathc = 0; + pglob->gl_pathv = NULL; + if (!(flags & GLOB_DOOFFS)) + pglob->gl_offs = 0; + } + if (flags & GLOB_LIMIT) { + limit = pglob->gl_matchc; + if (limit == 0) + limit = ARG_MAX; + } else + limit = 0; + pglob->gl_flags = flags & ~GLOB_MAGCHAR; + pglob->gl_errfunc = errfunc; + pglob->gl_matchc = 0; + + bufnext = patbuf; + bufend = bufnext + MAXPATHLEN - 1; + if (flags & GLOB_NOESCAPE) { + memset(&mbs, 0, sizeof(mbs)); + while (bufend - bufnext >= MB_CUR_MAX) { + clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); + if (clen == (size_t)-1 || clen == (size_t)-2) + return (GLOB_NOMATCH); + else if (clen == 0) + break; + *bufnext++ = wc; + patnext += clen; + } + } else { + /* Protect the quoted characters. */ + memset(&mbs, 0, sizeof(mbs)); + while (bufend - bufnext >= MB_CUR_MAX) { + if (*patnext == QUOTE) { + if (*++patnext == EOS) { + *bufnext++ = QUOTE | M_PROTECT; + continue; + } + prot = M_PROTECT; + } else + prot = 0; + clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); + if (clen == (size_t)-1 || clen == (size_t)-2) + return (GLOB_NOMATCH); + else if (clen == 0) + break; + *bufnext++ = wc | prot; + patnext += clen; + } + } + *bufnext = EOS; + + if (flags & GLOB_BRACE) + return globexp1(patbuf, pglob, &limit); + else + return glob0(patbuf, pglob, &limit); +} + +/* + * Expand recursively a glob {} pattern. When there is no more expansion + * invoke the standard globbing routine to glob the rest of the magic + * characters + */ +static int +globexp1(const Char *pattern, glob_t *pglob, size_t *limit) +{ + const Char* ptr = pattern; + int rv; + + /* Protect a single {}, for find(1), like csh */ + if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) + return glob0(pattern, pglob, limit); + + while ((ptr = g_strchr(ptr, LBRACE)) != NULL) + if (!globexp2(ptr, pattern, pglob, &rv, limit)) + return rv; + + return glob0(pattern, pglob, limit); +} + + +/* + * Recursive brace globbing helper. Tries to expand a single brace. + * If it succeeds then it invokes globexp1 with the new pattern. + * If it fails then it tries to glob the rest of the pattern and returns. + */ +static int +globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv, size_t *limit) +{ + int i; + Char *lm, *ls; + const Char *pe, *pm, *pm1, *pl; + Char patbuf[MAXPATHLEN]; + + /* copy part up to the brace */ + for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++) + continue; + *lm = EOS; + ls = lm; + + /* Find the balanced brace */ + for (i = 0, pe = ++ptr; *pe; pe++) + if (*pe == LBRACKET) { + /* Ignore everything between [] */ + for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) + continue; + if (*pe == EOS) { + /* + * We could not find a matching RBRACKET. + * Ignore and just look for RBRACE + */ + pe = pm; + } + } + else if (*pe == LBRACE) + i++; + else if (*pe == RBRACE) { + if (i == 0) + break; + i--; + } + + /* Non matching braces; just glob the pattern */ + if (i != 0 || *pe == EOS) { + *rv = glob0(patbuf, pglob, limit); + return 0; + } + + for (i = 0, pl = pm = ptr; pm <= pe; pm++) + switch (*pm) { + case LBRACKET: + /* Ignore everything between [] */ + for (pm1 = pm++; *pm != RBRACKET && *pm != EOS; pm++) + continue; + if (*pm == EOS) { + /* + * We could not find a matching RBRACKET. + * Ignore and just look for RBRACE + */ + pm = pm1; + } + break; + + case LBRACE: + i++; + break; + + case RBRACE: + if (i) { + i--; + break; + } + /* FALLTHROUGH */ + case COMMA: + if (i && *pm == COMMA) + break; + else { + /* Append the current string */ + for (lm = ls; (pl < pm); *lm++ = *pl++) + continue; + /* + * Append the rest of the pattern after the + * closing brace + */ + for (pl = pe + 1; (*lm++ = *pl++) != EOS;) + continue; + + /* Expand the current pattern */ +#ifdef DEBUG + qprintf("globexp2:", patbuf); +#endif + *rv = globexp1(patbuf, pglob, limit); + + /* move after the comma, to the next string */ + pl = pm + 1; + } + break; + + default: + break; + } + *rv = 0; + return 0; +} + + + +/* + * expand tilde from the passwd file. + */ +static const Char * +globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob_t *pglob) +{ + struct passwd *pwd; + char *h; + const Char *p; + Char *b, *eb; + + if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) + return pattern; + + /* + * Copy up to the end of the string or / + */ + eb = &patbuf[patbuf_len - 1]; + for (p = pattern + 1, h = (char *) patbuf; + h < (char *)eb && *p && *p != SLASH; *h++ = *p++) + continue; + + *h = EOS; + + if (((char *) patbuf)[0] == EOS) { + /* + * handle a plain ~ or ~/ by expanding $HOME first (iff + * we're not running setuid or setgid) and then trying + * the password file + */ + if (issetugid() != 0 || + (h = getenv("HOME")) == NULL) { + if (((h = getlogin()) != NULL && + (pwd = getpwnam(h)) != NULL) || + (pwd = getpwuid(getuid())) != NULL) + h = pwd->pw_dir; + else + return pattern; + } + } + else { + /* + * Expand a ~user + */ + if ((pwd = getpwnam((char*) patbuf)) == NULL) + return pattern; + else + h = pwd->pw_dir; + } + + /* Copy the home directory */ + for (b = patbuf; b < eb && *h; *b++ = *h++) + continue; + + /* Append the rest of the pattern */ + while (b < eb && (*b++ = *p++) != EOS) + continue; + *b = EOS; + + return patbuf; +} + + +/* + * The main glob() routine: compiles the pattern (optionally processing + * quotes), calls glob1() to do the real pattern matching, and finally + * sorts the list (unless unsorted operation is requested). Returns 0 + * if things went well, nonzero if errors occurred. + */ +static int +glob0(const Char *pattern, glob_t *pglob, size_t *limit) +{ + const Char *qpatnext; + int err; + size_t oldpathc; + Char *bufnext, c, patbuf[MAXPATHLEN]; + + qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); + oldpathc = pglob->gl_pathc; + bufnext = patbuf; + + /* We don't need to check for buffer overflow any more. */ + while ((c = *qpatnext++) != EOS) { + switch (c) { + case LBRACKET: + c = *qpatnext; + if (c == NOT) + ++qpatnext; + if (*qpatnext == EOS || + g_strchr(qpatnext+1, RBRACKET) == NULL) { + *bufnext++ = LBRACKET; + if (c == NOT) + --qpatnext; + break; + } + *bufnext++ = M_SET; + if (c == NOT) + *bufnext++ = M_NOT; + c = *qpatnext++; + do { + *bufnext++ = CHAR(c); + if (*qpatnext == RANGE && + (c = qpatnext[1]) != RBRACKET) { + *bufnext++ = M_RNG; + *bufnext++ = CHAR(c); + qpatnext += 2; + } + } while ((c = *qpatnext++) != RBRACKET); + pglob->gl_flags |= GLOB_MAGCHAR; + *bufnext++ = M_END; + break; + case QUESTION: + pglob->gl_flags |= GLOB_MAGCHAR; + *bufnext++ = M_ONE; + break; + case STAR: + pglob->gl_flags |= GLOB_MAGCHAR; + /* collapse adjacent stars to one, + * to avoid exponential behavior + */ + if (bufnext == patbuf || bufnext[-1] != M_ALL) + *bufnext++ = M_ALL; + break; + default: + *bufnext++ = CHAR(c); + break; + } + } + *bufnext = EOS; +#ifdef DEBUG + qprintf("glob0:", patbuf); +#endif + + if ((err = glob1(patbuf, pglob, limit)) != 0) + return(err); + + /* + * If there was no match we are going to append the pattern + * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified + * and the pattern did not contain any magic characters + * GLOB_NOMAGIC is there just for compatibility with csh. + */ + if (pglob->gl_pathc == oldpathc) { + if (((pglob->gl_flags & GLOB_NOCHECK) || + ((pglob->gl_flags & GLOB_NOMAGIC) && + !(pglob->gl_flags & GLOB_MAGCHAR)))) + return(globextend(pattern, pglob, limit)); + else + return(GLOB_NOMATCH); + } + if (!(pglob->gl_flags & GLOB_NOSORT)) + qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, + pglob->gl_pathc - oldpathc, sizeof(char *), compare); + return(0); +} + +static int +compare(const void *p, const void *q) +{ + return(strcmp(*(char **)p, *(char **)q)); +} + +static int +glob1(Char *pattern, glob_t *pglob, size_t *limit) +{ + Char pathbuf[MAXPATHLEN]; + + /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */ + if (*pattern == EOS) + return(0); + return(glob2(pathbuf, pathbuf, pathbuf + MAXPATHLEN - 1, + pattern, pglob, limit)); +} + +/* + * The functions glob2 and glob3 are mutually recursive; there is one level + * of recursion for each segment in the pattern that contains one or more + * meta characters. + */ +static int +glob2(Char *pathbuf, Char *pathend, Char *pathend_last, Char *pattern, + glob_t *pglob, size_t *limit) +{ + struct stat sb; + Char *p, *q; + int anymeta; + + /* + * Loop over pattern segments until end of pattern or until + * segment with meta character found. + */ + for (anymeta = 0;;) { + if (*pattern == EOS) { /* End of pattern? */ + *pathend = EOS; + if (g_lstat(pathbuf, &sb, pglob)) + return(0); + + if (((pglob->gl_flags & GLOB_MARK) && + pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) + || (S_ISLNK(sb.st_mode) && + (g_stat(pathbuf, &sb, pglob) == 0) && + S_ISDIR(sb.st_mode)))) { + if (pathend + 1 > pathend_last) + return (GLOB_ABORTED); + *pathend++ = SEP; + *pathend = EOS; + } + ++pglob->gl_matchc; + return(globextend(pathbuf, pglob, limit)); + } + + /* Find end of next segment, copy tentatively to pathend. */ + q = pathend; + p = pattern; + while (*p != EOS && *p != SEP) { + if (ismeta(*p)) + anymeta = 1; + if (q + 1 > pathend_last) + return (GLOB_ABORTED); + *q++ = *p++; + } + + if (!anymeta) { /* No expansion, do next segment. */ + pathend = q; + pattern = p; + while (*pattern == SEP) { + if (pathend + 1 > pathend_last) + return (GLOB_ABORTED); + *pathend++ = *pattern++; + } + } else /* Need expansion, recurse. */ + return(glob3(pathbuf, pathend, pathend_last, pattern, p, + pglob, limit)); + } + /* NOTREACHED */ +} + +static int +glob3(Char *pathbuf, Char *pathend, Char *pathend_last, + Char *pattern, Char *restpattern, + glob_t *pglob, size_t *limit) +{ + struct dirent *dp; + DIR *dirp; + int err; + char buf[MAXPATHLEN]; + + /* + * The readdirfunc declaration can't be prototyped, because it is + * assigned, below, to two functions which are prototyped in glob.h + * and dirent.h as taking pointers to differently typed opaque + * structures. + */ + struct dirent *(*readdirfunc)(); + + if (pathend > pathend_last) + return (GLOB_ABORTED); + *pathend = EOS; + errno = 0; + + if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { + /* TODO: don't call for ENOENT or ENOTDIR? */ + if (pglob->gl_errfunc) { + if (g_Ctoc(pathbuf, buf, sizeof(buf))) + return (GLOB_ABORTED); + if (pglob->gl_errfunc(buf, errno) || + pglob->gl_flags & GLOB_ERR) + return (GLOB_ABORTED); + } + return(0); + } + + err = 0; + + /* Search directory for matching names. */ + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + readdirfunc = pglob->gl_readdir; + else + readdirfunc = readdir; + while ((dp = (*readdirfunc)(dirp))) { + char *sc; + Char *dc; + wchar_t wc; + size_t clen; + mbstate_t mbs; + + /* Initial DOT must be matched literally. */ + if (dp->d_name[0] == DOT && *pattern != DOT) + continue; + memset(&mbs, 0, sizeof(mbs)); + dc = pathend; + sc = dp->d_name; + while (dc < pathend_last) { + clen = mbrtowc(&wc, sc, MB_LEN_MAX, &mbs); + if (clen == (size_t)-1 || clen == (size_t)-2) { + wc = *sc; + clen = 1; + memset(&mbs, 0, sizeof(mbs)); + } + if ((*dc++ = wc) == EOS) + break; + sc += clen; + } + if (!match(pathend, pattern, restpattern)) { + *pathend = EOS; + continue; + } + err = glob2(pathbuf, --dc, pathend_last, restpattern, + pglob, limit); + if (err) + break; + } + + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + (*pglob->gl_closedir)(dirp); + else + closedir(dirp); + return(err); +} + + +/* + * Extend the gl_pathv member of a glob_t structure to accomodate a new item, + * add the new item, and update gl_pathc. + * + * This assumes the BSD realloc, which only copies the block when its size + * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic + * behavior. + * + * Return 0 if new item added, error code if memory couldn't be allocated. + * + * Invariant of the glob_t structure: + * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and + * gl_pathv points to (gl_offs + gl_pathc + 1) items. + */ +static int +globextend(const Char *path, glob_t *pglob, size_t *limit) +{ + char **pathv; + size_t i, newsize, len; + char *copy; + const Char *p; + + if (*limit && pglob->gl_pathc > *limit) { + errno = 0; + return (GLOB_NOSPACE); + } + + newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs); + pathv = pglob->gl_pathv ? + realloc((char *)pglob->gl_pathv, newsize) : + malloc(newsize); + if (pathv == NULL) { + if (pglob->gl_pathv) { + free(pglob->gl_pathv); + pglob->gl_pathv = NULL; + } + return(GLOB_NOSPACE); + } + + if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { + /* first time around -- clear initial gl_offs items */ + pathv += pglob->gl_offs; + for (i = pglob->gl_offs + 1; --i > 0; ) + *--pathv = NULL; + } + pglob->gl_pathv = pathv; + + for (p = path; *p++;) + continue; + len = MB_CUR_MAX * (size_t)(p - path); /* XXX overallocation */ + if ((copy = malloc(len)) != NULL) { + if (g_Ctoc(path, copy, len)) { + free(copy); + return (GLOB_NOSPACE); + } + pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; + } + pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; + return(copy == NULL ? GLOB_NOSPACE : 0); +} + +/* + * pattern matching function for filenames. Each occurrence of the * + * pattern causes a recursion level. + */ +static int +match(Char *name, Char *pat, Char *patend) +{ + int ok, negate_range; + Char c, k; + + while (pat < patend) { + c = *pat++; + switch (c & M_MASK) { + case M_ALL: + if (pat == patend) + return(1); + do + if (match(name, pat, patend)) + return(1); + while (*name++ != EOS); + return(0); + case M_ONE: + if (*name++ == EOS) + return(0); + break; + case M_SET: + ok = 0; + if ((k = *name++) == EOS) + return(0); + if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) + ++pat; + while (((c = *pat++) & M_MASK) != M_END) + if ((*pat & M_MASK) == M_RNG) { + if (CHAR(c) <= CHAR(k) && CHAR(k) <= CHAR(pat[1])) ok = 1; + pat += 2; + } else if (c == k) + ok = 1; + if (ok == negate_range) + return(0); + break; + default: + if (*name++ != c) + return(0); + break; + } + } + return(*name == EOS); +} + +/* Free allocated data belonging to a glob_t structure. */ +void +globfree(glob_t *pglob) +{ + size_t i; + char **pp; + + if (pglob->gl_pathv != NULL) { + pp = pglob->gl_pathv + pglob->gl_offs; + for (i = pglob->gl_pathc; i--; ++pp) + if (*pp) + free(*pp); + free(pglob->gl_pathv); + pglob->gl_pathv = NULL; + } +} + +static DIR * +g_opendir(Char *str, glob_t *pglob) +{ + char buf[MAXPATHLEN]; + + if (!*str) + strcpy(buf, "."); + else { + if (g_Ctoc(str, buf, sizeof(buf))) + return (NULL); + } + + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_opendir)(buf)); + + return(opendir(buf)); +} + +static int +g_lstat(Char *fn, struct stat *sb, glob_t *pglob) +{ + char buf[MAXPATHLEN]; + + if (g_Ctoc(fn, buf, sizeof(buf))) { + errno = ENAMETOOLONG; + return (-1); + } + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_lstat)(buf, sb)); + return(lstat(buf, sb)); +} + +static int +g_stat(Char *fn, struct stat *sb, glob_t *pglob) +{ + char buf[MAXPATHLEN]; + + if (g_Ctoc(fn, buf, sizeof(buf))) { + errno = ENAMETOOLONG; + return (-1); + } + if (pglob->gl_flags & GLOB_ALTDIRFUNC) + return((*pglob->gl_stat)(buf, sb)); + return(stat(buf, sb)); +} + +static const Char * +g_strchr(const Char *str, wchar_t ch) +{ + + do { + if (*str == ch) + return (str); + } while (*str++); + return (NULL); +} + +static int +g_Ctoc(const Char *str, char *buf, size_t len) +{ + mbstate_t mbs; + size_t clen; + + memset(&mbs, 0, sizeof(mbs)); + while (len >= MB_CUR_MAX) { + clen = wcrtomb(buf, *str, &mbs); + if (clen == (size_t)-1) + return (1); + if (*str == L'\0') + return (0); + str++; + buf += clen; + len -= clen; + } + return (1); +} + +#ifdef DEBUG +static void +qprintf(const char *str, Char *s) +{ + Char *p; + + (void)printf("%s:\n", str); + for (p = s; *p; p++) + (void)printf("%c", CHAR(*p)); + (void)printf("\n"); + for (p = s; *p; p++) + (void)printf("%c", *p & M_PROTECT ? '"' : ' '); + (void)printf("\n"); + for (p = s; *p; p++) + (void)printf("%c", ismeta(*p) ? '_' : ' '); + (void)printf("\n"); +} +#endif diff --git a/android/library/src/main/jni/include/glob.h b/android/library/src/main/jni/include/glob.h new file mode 100644 index 0000000..7746841 --- /dev/null +++ b/android/library/src/main/jni/include/glob.h @@ -0,0 +1,105 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Guido van Rossum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)glob.h 8.1 (Berkeley) 6/2/93 + * $FreeBSD$ + */ + +#ifndef _GLOB_H_ +#define _GLOB_H_ + +#include +#include + +#ifndef _SIZE_T_DECLARED +typedef __size_t size_t; +#define _SIZE_T_DECLARED +#endif + +struct stat; +typedef struct { + size_t gl_pathc; /* Count of total paths so far. */ + size_t gl_matchc; /* Count of paths matching pattern. */ + size_t gl_offs; /* Reserved at beginning of gl_pathv. */ + int gl_flags; /* Copy of flags parameter to glob. */ + char **gl_pathv; /* List of paths matching pattern. */ + /* Copy of errfunc parameter to glob. */ + int (*gl_errfunc)(const char *, int); + + /* + * Alternate filesystem access methods for glob; replacement + * versions of closedir(3), readdir(3), opendir(3), stat(2) + * and lstat(2). + */ + void (*gl_closedir)(void *); + struct dirent *(*gl_readdir)(void *); + void *(*gl_opendir)(const char *); + int (*gl_lstat)(const char *, struct stat *); + int (*gl_stat)(const char *, struct stat *); +} glob_t; + +#if __POSIX_VISIBLE >= 199209 +/* Believed to have been introduced in 1003.2-1992 */ +#define GLOB_APPEND 0x0001 /* Append to output from previous call. */ +#define GLOB_DOOFFS 0x0002 /* Use gl_offs. */ +#define GLOB_ERR 0x0004 /* Return on error. */ +#define GLOB_MARK 0x0008 /* Append / to matching directories. */ +#define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ +#define GLOB_NOSORT 0x0020 /* Don't sort. */ +#define GLOB_NOESCAPE 0x2000 /* Disable backslash escaping. */ + +/* Error values returned by glob(3) */ +#define GLOB_NOSPACE (-1) /* Malloc call failed. */ +#define GLOB_ABORTED (-2) /* Unignored error. */ +#define GLOB_NOMATCH (-3) /* No match and GLOB_NOCHECK was not set. */ +#define GLOB_NOSYS (-4) /* Obsolete: source comptability only. */ +#endif /* __POSIX_VISIBLE >= 199209 */ + +#if __BSD_VISIBLE +#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ +#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ +#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */ +#define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ +#define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ +#define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ +#define GLOB_LIMIT 0x1000 /* limit number of returned paths */ + +/* source compatibility, these are the old names */ +#define GLOB_MAXPATH GLOB_LIMIT +#define GLOB_ABEND GLOB_ABORTED +#endif /* __BSD_VISIBLE */ + +__BEGIN_DECLS +int glob(const char *, int, int (*)(const char *, int), glob_t *); +void globfree(glob_t *); +__END_DECLS + +#endif /* !_GLOB_H_ */ diff --git a/android/library/src/main/jni/include/jni_utility.h b/android/library/src/main/jni/include/jni_utility.h new file mode 100644 index 0000000..960ebe8 --- /dev/null +++ b/android/library/src/main/jni/include/jni_utility.h @@ -0,0 +1,313 @@ +/* + * Copyright (C) 2003, 2004, 2005, 2008, 2009, 2010 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef JNIUtility_h +#define JNIUtility_h + +#include +#include +#include +#include +#include + +#include + +#include "log.h" + +#define FIND_CLASS_RETURN_GLOBAL_REF 0x1 +#define FIND_CLASS_USE_CLASS_LOADER 0x2 + +/** + * Helper method for checking java exceptions + * @return true if an exception occurred. + */ +bool checkException(JNIEnv* env); +std::string jstringToStdString(JNIEnv* env, jstring jstr); +jstring stdStringToJstring(JNIEnv* env, const std::string& str); +std::list jstringArrayToStdStringList(jobjectArray jstringArray); +bool jbooleanTobool(jboolean jBoolean); + +JNIEnv* getJNIEnv(); +JavaVM* getJavaVM(); +void setJavaVM(JavaVM*); +jclass findClass(const char* name, int flags = FIND_CLASS_USE_CLASS_LOADER); + +inline std::string jstringToStdString(jstring jstr) +{ + return jstringToStdString(getJNIEnv(), jstr); +} +inline jstring stdStringToJstring(const std::string& str) +{ + return stdStringToJstring(getJNIEnv(), str); +} + +jobjectArray createStringArray(JNIEnv* env, int size); + +template struct JNICaller; + +template<> struct JNICaller { + static void callV(jobject obj, jmethodID mid, va_list args) + { + getJNIEnv()->CallVoidMethodV(obj, mid, args); + } + static void callStaticV(jclass cls, jmethodID mid, va_list args) + { + return getJNIEnv()->CallStaticVoidMethodV(cls, mid, args); + } + static void returnEmpty() + { + } +}; + +#define DEFINE_CALLER_TYPE(_jtype, _jname, _default) \ + template<> struct JNICaller<_jtype> { \ + static _jtype callV(jobject obj, jmethodID mid, va_list args) \ + { \ + return getJNIEnv()->Call##_jname##MethodV(obj, mid, args); \ + } \ + static _jtype get(jobject obj, jfieldID fid) \ + { \ + return getJNIEnv()->Get##_jname##Field(obj, fid); \ + } \ + static void set(jobject obj, jfieldID fid, _jtype value) \ + { \ + getJNIEnv()->Set##_jname##Field(obj, fid, value); \ + } \ + static _jtype callStaticV(jclass cls, jmethodID mid, va_list args) \ + { \ + return getJNIEnv()->CallStatic##_jname##MethodV(cls, mid, args); \ + } \ + static _jtype returnEmpty() \ + { \ + return _default; \ + } \ + }; + + DEFINE_CALLER_TYPE(jobject, Object, 0) + DEFINE_CALLER_TYPE(jboolean, Boolean, false) + DEFINE_CALLER_TYPE(jbyte, Byte, 0) + DEFINE_CALLER_TYPE(jchar, Char, 0) + DEFINE_CALLER_TYPE(jshort, Short, 0) + DEFINE_CALLER_TYPE(jint, Int, 0) + DEFINE_CALLER_TYPE(jlong, Long, 0) + DEFINE_CALLER_TYPE(jfloat, Float, 0) + DEFINE_CALLER_TYPE(jdouble, Double, 0) + + +template<> struct JNICaller { + static std::string callA(jobject obj, jmethodID mid, jvalue* args) + { + jobject jstr = getJNIEnv()->CallObjectMethodA(obj, mid, args); + std::string ret = jstringToStdString(getJNIEnv(), (jstring)jstr); + getJNIEnv()->DeleteLocalRef(jstr); + return ret; + } + static std::string callV(jobject obj, jmethodID mid, va_list args) + { + jobject jstr = getJNIEnv()->CallObjectMethodV(obj, mid, args); + std::string ret = jstringToStdString(getJNIEnv(), (jstring)jstr); + getJNIEnv()->DeleteLocalRef(jstr); + return ret; + } + static std::string get(jobject obj, jfieldID fid) + { + jobject jstr = getJNIEnv()->GetObjectField(obj, fid); + std::string ret = jstringToStdString(getJNIEnv(), (jstring)jstr); + getJNIEnv()->DeleteLocalRef(jstr); + return ret; + } + static void set(jobject obj, jfieldID fid, std::string value) + { + jobject jstr = stdStringToJstring(getJNIEnv(), value); + getJNIEnv()->SetObjectField(obj, fid, jstr); + getJNIEnv()->DeleteLocalRef(jstr); + } + static std::string callStaticV(jclass cls, jmethodID mid, va_list args) + { + jobject jstr = getJNIEnv()->CallStaticObjectMethodV(cls, mid, args); + std::string ret = jstringToStdString(getJNIEnv(), (jstring)jstr); + getJNIEnv()->DeleteLocalRef(jstr); + return ret; + } + static std::string returnEmpty() + { + return std::string(); + } +}; + +template T callJNIMethodIDV(jobject obj, jmethodID mid, va_list args) +{ + return JNICaller::callV(obj, mid, args); +} + +template +static T callJNIMethodV(jobject obj, const char* name, const char* sig, va_list args) +{ + JavaVM* jvm = getJavaVM(); + JNIEnv* env = getJNIEnv(); + + if (obj && jvm && env) { + ScopedLocalRef cls(env, env->GetObjectClass(obj)); + if (cls.get()) { + jmethodID mid = env->GetMethodID(cls.get(), name, sig); + if (mid) { + // Avoids references to cls without popping the local frame. + return JNICaller::callV(obj, mid, args); + } else { + LOGE("Could not find method %s for %p", name, cls.get()); + } + env->ExceptionDescribe(); + } else { + env->ExceptionDescribe(); + LOGE("Could not find class for %p", obj); + } + } + + return JNICaller::returnEmpty(); +} + +template +T callJNIMethod(jobject obj, const char* methodName, const char* methodSignature, ...) +{ + va_list args; + va_start(args, methodSignature); + + T result = callJNIMethodV(obj, methodName, methodSignature, args); + + va_end(args); + + return result; +} + +template +T callJNIMethodID(jobject obj, jmethodID mid, ...) +{ + va_list args; + va_start(args, mid); + + T result = callJNIMethodIDV(obj, mid, args); + + va_end(args); + + return result; +} + +template +T callJNIStaticMethod(jclass cls, jmethodID mid, ...) +{ + va_list args; + va_start(args, mid); + + T result = JNICaller::callStaticV(cls, mid, args); + + va_end(args); + + return result; +} + +template +T callJNIStaticMethod(jclass cls, const char* methodName, const char* methodSignature, ...) +{ + JavaVM* jvm = getJavaVM(); + JNIEnv* env = getJNIEnv(); + va_list args; + + va_start(args, methodSignature); + + if (cls && jvm && env) { + jmethodID mid = env->GetStaticMethodID(cls, methodName, methodSignature); + if (mid) + return JNICaller::callStaticV(cls, mid, args); + else { + env->ExceptionDescribe(); + LOGE("Could not find method: %s for %p", methodName, cls); + } + } + + va_end(args); + + return JNICaller::returnEmpty(); +} + +void callJNIVoidMethod(jobject obj, const char* methodName, const char* methodSignature, ...); +void callJNIVoidMethodID(jobject obj, jmethodID mid, ...); + +void callJNIStaticVoidMethod(const char* className, const char* methodName, const char* methodSignature, ...); + +template +static void setFieldValue(jobject obj, const char* name, const char* sig, T value) +{ + JavaVM* jvm = getJavaVM(); + JNIEnv* env = getJNIEnv(); + + if (obj && jvm && env) { + ScopedLocalRef cls(env, env->GetObjectClass(obj)); + if (cls.get()) { + jfieldID fid = env->GetFieldID(cls.get(), name, sig); + if (fid) { + // Avoids references to cls without popping the local frame. + return JNICaller::set(obj, fid, value); + } else { + LOGE("Could not find field %s for %p", name, cls.get()); + } + env->ExceptionDescribe(); + } else { + env->ExceptionDescribe(); + LOGE("Could not find class for %p", name, obj); + } + } +} + +template +static T getFieldValue(jobject obj, const char* name, const char* sig) +{ + JavaVM* jvm = getJavaVM(); + JNIEnv* env = getJNIEnv(); + + if (obj && jvm && env) { + ScopedLocalRef cls(env, env->GetObjectClass(obj)); + if (cls.get()) { + jfieldID fid = env->GetFieldID(cls.get(), name, sig); + if (fid) { + // Avoids references to cls without popping the local frame. + return JNICaller::get(obj, fid); + } else { + LOGE("Could not find field %s", name); + } + env->ExceptionDescribe(); + } else { + env->ExceptionDescribe(); + LOGE("Could not find class for %p", name, obj); + } + } + return JNICaller::returnEmpty(); +} + +jobject toJavaBoolean(bool value); +jobject toJavaLong(jlong value); +jobject toJavaInt(jint value); +jobject newJavaObject(const char* className); + +#endif // JNIUtility_h diff --git a/android/library/src/main/jni/include/linux/serial.h b/android/library/src/main/jni/include/linux/serial.h new file mode 100644 index 0000000..4d04115 --- /dev/null +++ b/android/library/src/main/jni/include/linux/serial.h @@ -0,0 +1,126 @@ +/* + * include/linux/serial.h + * + * Copyright (C) 1992 by Theodore Ts'o. + * + * Redistribution of this file is permitted under the terms of the GNU + * Public License (GPL) + */ + +#ifndef _LINUX_SERIAL_H +#define _LINUX_SERIAL_H + +#include + +#include + + +struct serial_struct { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + unsigned short close_delay; + char io_type; + char reserved_char[1]; + int hub6; + unsigned short closing_wait; /* time to wait before closing */ + unsigned short closing_wait2; /* no longer used... */ + unsigned char *iomem_base; + unsigned short iomem_reg_shift; + unsigned int port_high; + unsigned long iomap_base; /* cookie passed into ioremap */ +}; + +/* + * For the close wait times, 0 means wait forever for serial port to + * flush its output. 65535 means don't wait at all. + */ +#define ASYNC_CLOSING_WAIT_INF 0 +#define ASYNC_CLOSING_WAIT_NONE 65535 + +/* + * These are the supported serial types. + */ +#define PORT_UNKNOWN 0 +#define PORT_8250 1 +#define PORT_16450 2 +#define PORT_16550 3 +#define PORT_16550A 4 +#define PORT_CIRRUS 5 /* usurped by cyclades.c */ +#define PORT_16650 6 +#define PORT_16650V2 7 +#define PORT_16750 8 +#define PORT_STARTECH 9 /* usurped by cyclades.c */ +#define PORT_16C950 10 /* Oxford Semiconductor */ +#define PORT_16654 11 +#define PORT_16850 12 +#define PORT_RSA 13 /* RSA-DV II/S card */ +#define PORT_MAX 13 + +#define SERIAL_IO_PORT 0 +#define SERIAL_IO_HUB6 1 +#define SERIAL_IO_MEM 2 + +#define UART_CLEAR_FIFO 0x01 +#define UART_USE_FIFO 0x02 +#define UART_STARTECH 0x04 +#define UART_NATSEMI 0x08 + + +/* + * Multiport serial configuration structure --- external structure + */ +struct serial_multiport_struct { + int irq; + int port1; + unsigned char mask1, match1; + int port2; + unsigned char mask2, match2; + int port3; + unsigned char mask3, match3; + int port4; + unsigned char mask4, match4; + int port_monitor; + int reserved[32]; +}; + +/* + * Serial input interrupt line counters -- external structure + * Four lines can interrupt: CTS, DSR, RI, DCD + */ +struct serial_icounter_struct { + int cts, dsr, rng, dcd; + int rx, tx; + int frame, overrun, parity, brk; + int buf_overrun; + int reserved[9]; +}; + +/* + * Serial interface for controlling RS485 settings on chips with suitable + * support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your + * platform. The set function returns the new state, with any unsupported bits + * reverted appropriately. + */ + +struct serial_rs485 { + __u32 flags; /* RS485 feature flags */ +#define SER_RS485_ENABLED (1 << 0) /* If enabled */ +#define SER_RS485_RTS_ON_SEND (1 << 1) /* Logical level for + RTS pin when + sending */ +#define SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logical level for + RTS pin after sent*/ +#define SER_RS485_RX_DURING_TX (1 << 4) + __u32 delay_rts_before_send; /* Delay before send (milliseconds) */ + __u32 delay_rts_after_send; /* Delay after send (milliseconds) */ + __u32 padding[5]; /* Memory is cheap, new structs + are a royal PITA .. */ +}; + +#endif /* _LINUX_SERIAL_H */ diff --git a/android/library/src/main/jni/include/linux/tty_flags.h b/android/library/src/main/jni/include/linux/tty_flags.h new file mode 100644 index 0000000..eefcb48 --- /dev/null +++ b/android/library/src/main/jni/include/linux/tty_flags.h @@ -0,0 +1,78 @@ +#ifndef _LINUX_TTY_FLAGS_H +#define _LINUX_TTY_FLAGS_H + +/* + * Definitions for async_struct (and serial_struct) flags field also + * shared by the tty_port flags structures. + * + * Define ASYNCB_* for convenient use with {test,set,clear}_bit. + */ +#define ASYNCB_HUP_NOTIFY 0 /* Notify getty on hangups and closes + * on the callout port */ +#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport settings */ +#define ASYNCB_SAK 2 /* Secure Attention Key (Orange book) */ +#define ASYNCB_SPLIT_TERMIOS 3 /* Separate termios for dialin/callout */ +#define ASYNCB_SPD_HI 4 /* Use 56000 instead of 38400 bps */ +#define ASYNCB_SPD_VHI 5 /* Use 115200 instead of 38400 bps */ +#define ASYNCB_SKIP_TEST 6 /* Skip UART test during autoconfiguration */ +#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during + * autoconfiguration */ +#define ASYNCB_SESSION_LOCKOUT 8 /* Lock out cua opens based on session */ +#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */ +#define ASYNCB_CALLOUT_NOHUP 10 /* Don't do hangups for cua device */ +#define ASYNCB_HARDPPS_CD 11 /* Call hardpps when CD goes high */ +#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */ +#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */ +#define ASYNCB_BUGGY_UART 14 /* This is a buggy UART, skip some safety + * checks. Note: can be dangerous! */ +#define ASYNCB_AUTOPROBE 15 /* Port was autoprobed by PCI or PNP code */ +#define ASYNCB_LAST_USER 15 + +/* Internal flags used only by kernel */ +#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */ +#define ASYNCB_SUSPENDED 30 /* Serial port is suspended */ +#define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */ +#define ASYNCB_BOOT_AUTOCONF 28 /* Autoconfigure port on bootup */ +#define ASYNCB_CLOSING 27 /* Serial port is closing */ +#define ASYNCB_CTS_FLOW 26 /* Do CTS flow control */ +#define ASYNCB_CHECK_CD 25 /* i.e., CLOCAL */ +#define ASYNCB_SHARE_IRQ 24 /* for multifunction cards, no longer used */ +#define ASYNCB_CONS_FLOW 23 /* flow control for console */ +#define ASYNCB_FIRST_KERNEL 22 + +#define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY) +#define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED) +#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT) +#define ASYNC_SAK (1U << ASYNCB_SAK) +#define ASYNC_SPLIT_TERMIOS (1U << ASYNCB_SPLIT_TERMIOS) +#define ASYNC_SPD_HI (1U << ASYNCB_SPD_HI) +#define ASYNC_SPD_VHI (1U << ASYNCB_SPD_VHI) +#define ASYNC_SKIP_TEST (1U << ASYNCB_SKIP_TEST) +#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ) +#define ASYNC_SESSION_LOCKOUT (1U << ASYNCB_SESSION_LOCKOUT) +#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT) +#define ASYNC_CALLOUT_NOHUP (1U << ASYNCB_CALLOUT_NOHUP) +#define ASYNC_HARDPPS_CD (1U << ASYNCB_HARDPPS_CD) +#define ASYNC_SPD_SHI (1U << ASYNCB_SPD_SHI) +#define ASYNC_LOW_LATENCY (1U << ASYNCB_LOW_LATENCY) +#define ASYNC_BUGGY_UART (1U << ASYNCB_BUGGY_UART) +#define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE) + +#define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1) +#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \ + ASYNC_LOW_LATENCY) +#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI) +#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI) +#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI) + +#define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED) +#define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE) +#define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF) +#define ASYNC_CLOSING (1U << ASYNCB_CLOSING) +#define ASYNC_CTS_FLOW (1U << ASYNCB_CTS_FLOW) +#define ASYNC_CHECK_CD (1U << ASYNCB_CHECK_CD) +#define ASYNC_SHARE_IRQ (1U << ASYNCB_SHARE_IRQ) +#define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW) +#define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1)) + +#endif diff --git a/android/library/src/main/jni/include/log.h b/android/library/src/main/jni/include/log.h new file mode 100644 index 0000000..fb28d49 --- /dev/null +++ b/android/library/src/main/jni/include/log.h @@ -0,0 +1,37 @@ +#ifndef __LOG_H_ +#define __LOG_H_ + +#include + +#define LOG_TAG "serial" + +#if NDK_DEBUG + +#define LOGA(cond,fmt,...) ((cond) ? ((void)0) : __android_log_assert(0, LOG_TAG, fmt, ##__VA_ARGS__)) +#define LOGV(fmt,...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, fmt, ##__VA_ARGS__) +#define LOGD(fmt,...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##__VA_ARGS__) + +#define LOG_ASSERT(cond,fmt,...) ((cond) ? ((void)0) : __android_log_assert(0, tag, fmt, ##__VA_ARGS__)) +#define LOG_VERBOSE(tag,fmt,...) __android_log_print(ANDROID_LOG_VERBOSE, tag, fmt, ##__VA_ARGS__) +#define LOG_DEBUG(tag,fmt,...) __android_log_print(ANDROID_LOG_VERBOSE, tag, fmt, ##__VA_ARGS__) + +#else + +#define LOGA(...) +#define LOGV(...) +#define LOGD(...) + +#define LOG_VERBOSE(...) +#define LOG_DEBUG(...) + +#endif + +#define LOGI(fmt,...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, fmt, ##__VA_ARGS__) +#define LOGW(fmt,...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, fmt, ##__VA_ARGS__) +#define LOGE(fmt,...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, fmt, ##__VA_ARGS__) + +#define LOG_INFO(tag,fmt,...) __android_log_print(ANDROID_LOG_INFO, tag, fmt, ##__VA_ARGS__) +#define LOG_WARN(tag,fmt,...) __android_log_print(ANDROID_LOG_WARN, tag, fmt, ##__VA_ARGS__) +#define LOG_ERROR(tag,fmt,...) __android_log_print(ANDROID_LOG_ERROR, tag, fmt, ##__VA_ARGS__) + +#endif diff --git a/android/library/src/main/jni/include/serial b/android/library/src/main/jni/include/serial new file mode 120000 index 0000000..5e1aef8 --- /dev/null +++ b/android/library/src/main/jni/include/serial @@ -0,0 +1 @@ +../../../../../../include/serial \ No newline at end of file diff --git a/android/library/src/main/jni/include/sys/signal.h b/android/library/src/main/jni/include/sys/signal.h new file mode 100644 index 0000000..2e602da --- /dev/null +++ b/android/library/src/main/jni/include/sys/signal.h @@ -0,0 +1 @@ +#include diff --git a/android/library/src/main/jni/include/sysexits.h b/android/library/src/main/jni/include/sysexits.h new file mode 100644 index 0000000..37246b6 --- /dev/null +++ b/android/library/src/main/jni/include/sysexits.h @@ -0,0 +1,114 @@ +/* + * Copyright (c) 1987, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)sysexits.h 8.1 (Berkeley) 6/2/93 + */ + +#ifndef _SYSEXITS_H +#define _SYSEXITS_H 1 + +/* + * SYSEXITS.H -- Exit status codes for system programs. + * + * This include file attempts to categorize possible error + * exit statuses for system programs, notably delivermail + * and the Berkeley network. + * + * Error numbers begin at EX__BASE to reduce the possibility of + * clashing with other exit statuses that random programs may + * already return. The meaning of the codes is approximately + * as follows: + * + * EX_USAGE -- The command was used incorrectly, e.g., with + * the wrong number of arguments, a bad flag, a bad + * syntax in a parameter, or whatever. + * EX_DATAERR -- The input data was incorrect in some way. + * This should only be used for user's data & not + * system files. + * EX_NOINPUT -- An input file (not a system file) did not + * exist or was not readable. This could also include + * errors like "No message" to a mailer (if it cared + * to catch it). + * EX_NOUSER -- The user specified did not exist. This might + * be used for mail addresses or remote logins. + * EX_NOHOST -- The host specified did not exist. This is used + * in mail addresses or network requests. + * EX_UNAVAILABLE -- A service is unavailable. This can occur + * if a support program or file does not exist. This + * can also be used as a catchall message when something + * you wanted to do doesn't work, but you don't know + * why. + * EX_SOFTWARE -- An internal software error has been detected. + * This should be limited to non-operating system related + * errors as possible. + * EX_OSERR -- An operating system error has been detected. + * This is intended to be used for such things as "cannot + * fork", "cannot create pipe", or the like. It includes + * things like getuid returning a user that does not + * exist in the passwd file. + * EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp, + * etc.) does not exist, cannot be opened, or has some + * sort of error (e.g., syntax error). + * EX_CANTCREAT -- A (user specified) output file cannot be + * created. + * EX_IOERR -- An error occurred while doing I/O on some file. + * EX_TEMPFAIL -- temporary failure, indicating something that + * is not really an error. In sendmail, this means + * that a mailer (e.g.) could not create a connection, + * and the request should be reattempted later. + * EX_PROTOCOL -- the remote system returned something that + * was "not possible" during a protocol exchange. + * EX_NOPERM -- You did not have sufficient permission to + * perform the operation. This is not intended for + * file system problems, which should use NOINPUT or + * CANTCREAT, but rather for higher level permissions. + */ + +#define EX_OK 0 /* successful termination */ + +#define EX__BASE 64 /* base value for error messages */ + +#define EX_USAGE 64 /* command line usage error */ +#define EX_DATAERR 65 /* data format error */ +#define EX_NOINPUT 66 /* cannot open input */ +#define EX_NOUSER 67 /* addressee unknown */ +#define EX_NOHOST 68 /* host name unknown */ +#define EX_UNAVAILABLE 69 /* service unavailable */ +#define EX_SOFTWARE 70 /* internal software error */ +#define EX_OSERR 71 /* system error (e.g., can't fork) */ +#define EX_OSFILE 72 /* critical OS file missing */ +#define EX_CANTCREAT 73 /* can't create (user) output file */ +#define EX_IOERR 74 /* input/output error */ +#define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ +#define EX_PROTOCOL 76 /* remote error in protocol */ +#define EX_NOPERM 77 /* permission denied */ +#define EX_CONFIG 78 /* configuration error */ + +#define EX__MAX 78 /* maximum listed value */ + +#endif /* sysexits.h */ diff --git a/android/library/src/main/jni/jni_main.cc b/android/library/src/main/jni/jni_main.cc new file mode 100644 index 0000000..539983f --- /dev/null +++ b/android/library/src/main/jni/jni_main.cc @@ -0,0 +1,60 @@ +#include +#include + +#include "jni_utility.h" +#include "log.h" + +using namespace std; + +#ifdef __cplusplus +extern "C" { +#endif + +struct RegistrationMethod { + const char* name; + int (*func)(JNIEnv*); +}; + +extern int registerSerial(JNIEnv* env); + +static RegistrationMethod gRegMethods[] = { + { "Serial", registerSerial }, +}; + +JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) +{ + LOGV("JNI_OnLoad"); + JNIEnv* env = NULL; + jint result = -1; + + if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) { + LOGE("GetEnv failed!"); + return result; + } + if (!env) + LOGE("Could not retrieve the env!"); + + // Save the JavaVM pointer for use globally. + setJavaVM(vm); + + const RegistrationMethod* method = gRegMethods; + const RegistrationMethod* end = method + sizeof(gRegMethods) / sizeof(RegistrationMethod); + while (method != end) { + if (method->func(env) < 0) { + LOGE("%s registration failed!", method->name); + return result; + } + //LOGV("%s registration done.", method->name); + method++; + } + + // Initialize rand() function. The rand() function is used in + // FileSystemAndroid to create a random temporary filename. + srand(time(NULL)); + LOGV("JNI_OnLoad done."); + return JNI_VERSION_1_4; +} + +#ifdef __cplusplus +} +#endif diff --git a/android/library/src/main/jni/jni_utility.cc b/android/library/src/main/jni/jni_utility.cc new file mode 100644 index 0000000..4bb29f2 --- /dev/null +++ b/android/library/src/main/jni/jni_utility.cc @@ -0,0 +1,278 @@ +/* + * Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +static JavaVM* jvm = 0; +static jobject gClassLoader; +static jmethodID gFindClassMethod; + +static jclass gStringClass = 0; +static jmethodID gGetBytesMid = 0; +static jmethodID gNewStringMid = 0; + +static jobject gTrue = 0; +static jobject gFalse = 0; +static jclass gLongClass = 0; +static jmethodID gLongValueOf = 0; +static jclass gIntClass = 0; +static jmethodID gIntValueOf = 0; + +void setupGlobalClassLoader() +{ + JNIEnv* env = getJNIEnv(); + ScopedLocalRef coreJniClass(env, env->FindClass("serial/Serial")); + ScopedLocalRef classClass(env, env->GetObjectClass(coreJniClass.get())); + ScopedLocalRef classLoaderClass(env, env->FindClass("java/lang/ClassLoader")); + jmethodID getClassLoaderMethod = env->GetMethodID(classClass.get(), "getClassLoader", + "()Ljava/lang/ClassLoader;"); + ScopedLocalRef classLoader(env, env->CallObjectMethod(coreJniClass.get(), getClassLoaderMethod)); + gClassLoader = env->NewGlobalRef(classLoader.get()); + //LOGV("gClassLoader is %p", gClassLoader); + gFindClassMethod = env->GetMethodID(classLoaderClass.get(), "findClass", + "(Ljava/lang/String;)Ljava/lang/Class;"); + //LOGV("gFindClassMethod is %p", gFindClassMethod); + + ScopedLocalRef stringClass(env, env->FindClass("java/lang/String")); + gStringClass = (jclass)env->NewGlobalRef(stringClass.get()); + //LOGV("gStringClass is %p", gStringClass); + gGetBytesMid = env->GetMethodID (gStringClass, "getBytes", "()[B"); + //LOGV("gGetBytesMid is %p", gGetBytesMid); + gNewStringMid = env->GetMethodID(gStringClass, "", "([B)V"); + //LOGV("gNewStringMid is %p", gNewStringMid); + + ScopedLocalRef booleanCls(env, env->FindClass("java/lang/Boolean")); + ScopedLocalRef t(env, callJNIStaticMethod( + booleanCls.get(), "valueOf", "(Z)Ljava/lang/Boolean;", JNI_TRUE)); + gTrue = env->NewGlobalRef(t.get()); + //LOGV("gTrue is %p", gTrue); + ScopedLocalRef f(env, callJNIStaticMethod( + booleanCls.get(), "valueOf", "(Z)Ljava/lang/Boolean;", JNI_FALSE)); + gFalse = env->NewGlobalRef(f.get()); + //LOGV("gFalse is %p", gFalse); + + ScopedLocalRef longCls(env, env->FindClass("java/lang/Long")); + gLongClass = (jclass)env->NewGlobalRef(longCls.get()); + gLongValueOf = env->GetStaticMethodID(gLongClass, "valueOf", "(J)Ljava/lang/Long;"); + + ScopedLocalRef intCls(env, env->FindClass("java/lang/Integer")); + gIntClass = (jclass)env->NewGlobalRef(intCls.get()); + gIntValueOf = env->GetStaticMethodID(gIntClass, "valueOf", "(I)Ljava/lang/Integer;"); +} + +jclass findClass(const char* name, int flags /*= FIND_CLASS_USE_CLASS_LOADER*/) +{ + JNIEnv *env = getJNIEnv(); + jclass cls; + if ((flags & FIND_CLASS_USE_CLASS_LOADER) == FIND_CLASS_USE_CLASS_LOADER) { + ScopedLocalRef jname(env, env->NewStringUTF(name)); + cls = static_cast(env->CallObjectMethod(gClassLoader, gFindClassMethod, jname.get())); + } else { + cls = env->FindClass(name); + } + checkException(env); + + if ((flags & FIND_CLASS_RETURN_GLOBAL_REF) == FIND_CLASS_RETURN_GLOBAL_REF) { + jclass localClass = cls; + cls = (jclass)env->NewGlobalRef(localClass); + env->DeleteLocalRef(localClass); + } + return cls; +} + +// Provide the ability for an outside component to specify the JavaVM to use +// If the jvm value is set, the getJavaVM function below will just return. +// In getJNIEnv(), if AttachCurrentThread is called to a VM that is already +// attached, the result is a no-op. +void setJavaVM(JavaVM* javaVM) +{ + jvm = javaVM; + setupGlobalClassLoader(); +} + +JavaVM* getJavaVM() +{ + if (jvm) + return jvm; + LOGE("JavaVM is null"); + return NULL; +} + +static void detachCurrentThread(void *data) +{ + getJavaVM()->DetachCurrentThread(); +} + +JNIEnv* getJNIEnv() +{ + union { + JNIEnv* env; + void* dummy; + } u; + jint jniError = 0; + + jniError = getJavaVM()->AttachCurrentThread(&u.env, 0); + if (jniError == JNI_OK) { + return u.env; + } + LOGE("AttachCurrentThread failed, returned %ld", static_cast(jniError)); + return 0; +} + +bool checkException(JNIEnv* env) { + if (env->ExceptionCheck() != 0) { + LOGE("*** Uncaught exception returned from Java call!\n"); + env->ExceptionDescribe(); + return true; + } + return false; +} + +std::string jstringToStdString(JNIEnv* env, jstring jstr) { + if (!jstr || !env) + return std::string(); + + std::string result; + ScopedLocalRef barr(env, + (jbyteArray) env->CallObjectMethod(jstr, gGetBytesMid)); + jsize alen = env->GetArrayLength(barr.get()); + jbyte * ba = env->GetByteArrayElements(barr.get(), JNI_FALSE); + if (alen> 0) { + char* rtn = (char *) malloc (alen + 1); + memcpy(rtn, ba, alen); + rtn [alen] = 0; + result.assign(rtn); + } + env->ReleaseByteArrayElements(barr.get(), ba, 0); + return result; +} + +jstring stdStringToJstring(JNIEnv* env, const std::string& str) { + //return env->NewStringUTF(str.c_str()); + const char* bytes = str.c_str(); + size_t size = str.size(); + ScopedLocalRef result(env, env->NewByteArray(size)); + env->SetByteArrayRegion(result.get(), 0, size, (jbyte*)bytes); + jstring ret = (jstring) env->NewObject(gStringClass, gNewStringMid, result.get()); + return ret; +} + +jobjectArray createStringArray(JNIEnv *env, int size) { + return env->NewObjectArray(size, gStringClass, NULL); +} + +void callJNIVoidMethod(jobject obj, const char* methodName, const char* methodSignature, ...) +{ + va_list args; + va_start(args, methodSignature); + + callJNIMethodV(obj, methodName, methodSignature, args); + + va_end(args); +} + +void callJNIVoidMethodID(jobject obj, jmethodID mid, ...) +{ + va_list args; + va_start(args, mid); + + callJNIMethodIDV(obj, mid, args); + + va_end(args); +} + +void callJNIStaticVoidMethod(const char* className, const char* methodName, const char* methodSignature, ...) +{ + va_list args; + va_start(args, methodSignature); + + JNIEnv *env = getJNIEnv(); + ScopedLocalRef cls(env, findClass(className)); + if (checkException(env)) { + return; + } + if (cls.get() && env) { + jmethodID mid = env->GetStaticMethodID(cls.get(), methodName, methodSignature); + if (mid) + JNICaller::callStaticV(cls.get(), mid, args); + else { + env->ExceptionDescribe(); + LOGE("Could not find method: %s for %p", methodName, cls.get()); + } + } + va_end(args); +} + +jobject toJavaBoolean(bool value) +{ + if (value) { + return gTrue; + } else { + return gFalse; + } +} + +jobject toJavaLong(jlong value) +{ + return callJNIStaticMethod(gLongClass, gLongValueOf, value); +} + +jobject toJavaInt(jint value) +{ + return callJNIStaticMethod(gIntClass, gIntValueOf, value); +} + +jobject newJavaObject(const char* className) +{ + JNIEnv *env = getJNIEnv(); + ScopedLocalRef cls(env, findClass(className)); + if (cls.get()) { + jmethodID mid = env->GetMethodID(cls.get(), "", "()V"); + if (mid) { + return env->NewObject(cls.get(), mid); + } else { + LOGE("Could not find method %s", "()V"); + } + env->ExceptionDescribe(); + } else { + env->ExceptionDescribe(); + LOGE("Could not find class %s", className); + } + return 0; +} + +std::list jstringArrayToStdStringList(jobjectArray jstringArray) +{ + std::list list; + JNIEnv *env = getJNIEnv(); + jsize size = env->GetArrayLength(jstringArray); + for (int i = 0; i < size; i++) { + ScopedLocalRef item(env, env->GetObjectArrayElement(jstringArray, i)); + if (item.get()) { + list.push_back(jstringToStdString((jstring)item.get())); + } + } + return list; +} diff --git a/android/library/src/main/jni/libs/nativehelper/ALog-priv.h b/android/library/src/main/jni/libs/nativehelper/ALog-priv.h new file mode 100644 index 0000000..7b3ed97 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/ALog-priv.h @@ -0,0 +1,66 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef NATIVEHELPER_ALOGPRIV_H_ +#define NATIVEHELPER_ALOGPRIV_H_ + +#include + +#ifndef LOG_NDEBUG +#ifdef NDEBUG +#define LOG_NDEBUG 1 +#else +#define LOG_NDEBUG 0 +#endif +#endif + + +/* + * Basic log message macros intended to emulate the behavior of log/log.h + * in system core. This should be dependent only on ndk exposed logging + * functionality. + */ + +#ifndef ALOG +#define ALOG(priority, tag, fmt...) \ + __android_log_print(ANDROID_##priority, tag, fmt) +#endif + +#ifndef ALOGV +#if LOG_NDEBUG +#define ALOGV(...) ((void)0) +#else +#define ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) +#endif +#endif + +#ifndef ALOGD +#define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGI +#define ALOGI(...) ((void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGW +#define ALOGW(...) ((void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__)) +#endif + +#ifndef ALOGE +#define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__)) +#endif + +#endif diff --git a/android/library/src/main/jni/libs/nativehelper/Android.mk b/android/library/src/main/jni/libs/nativehelper/Android.mk new file mode 100644 index 0000000..c19bfb5 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/Android.mk @@ -0,0 +1,33 @@ +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE := nativehelper +LOCAL_CLANG := true +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/include/nativehelper +LOCAL_SRC_FILES := \ + JNIHelp.cpp \ + JniConstants.cpp \ + toStringArray.cpp + +LOCAL_EXPORT_CPPFLAGS := -I$(LOCAL_PATH)/include +LOCAL_CFLAGS := -Werror +LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) +#LOCAL_LDFLAGS := -llog -ldl +include $(BUILD_STATIC_LIBRARY) diff --git a/android/library/src/main/jni/libs/nativehelper/JNIHelp.cpp b/android/library/src/main/jni/libs/nativehelper/JNIHelp.cpp new file mode 100644 index 0000000..fcad2f4 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/JNIHelp.cpp @@ -0,0 +1,341 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "JNIHelp" + +#include "JniConstants.h" +#include "JNIHelp.h" +#include "ALog-priv.h" + +#include +#include +#include +#include + +#include + +/** + * Equivalent to ScopedLocalRef, but for C_JNIEnv instead. (And slightly more powerful.) + */ +template +class scoped_local_ref { +public: + scoped_local_ref(C_JNIEnv* env, T localRef = NULL) + : mEnv(env), mLocalRef(localRef) + { + } + + ~scoped_local_ref() { + reset(); + } + + void reset(T localRef = NULL) { + if (mLocalRef != NULL) { + (*mEnv)->DeleteLocalRef(reinterpret_cast(mEnv), mLocalRef); + mLocalRef = localRef; + } + } + + T get() const { + return mLocalRef; + } + +private: + C_JNIEnv* mEnv; + T mLocalRef; + + // Disallow copy and assignment. + scoped_local_ref(const scoped_local_ref&); + void operator=(const scoped_local_ref&); +}; + +static jclass findClass(C_JNIEnv* env, const char* className) { + JNIEnv* e = reinterpret_cast(env); + return (*env)->FindClass(e, className); +} + +extern "C" int jniRegisterNativeMethods(C_JNIEnv* env, const char* className, + const JNINativeMethod* gMethods, int numMethods) +{ + JNIEnv* e = reinterpret_cast(env); + + ALOGV("Registering %s's %d native methods...", className, numMethods); + + scoped_local_ref c(env, findClass(env, className)); + if (c.get() == NULL) { + char* msg; + asprintf(&msg, "Native registration unable to find class '%s'; aborting...", className); + e->FatalError(msg); + } + + if ((*env)->RegisterNatives(e, c.get(), gMethods, numMethods) < 0) { + char* msg; + asprintf(&msg, "RegisterNatives failed for '%s'; aborting...", className); + e->FatalError(msg); + } + + return 0; +} + +/* + * Returns a human-readable summary of an exception object. The buffer will + * be populated with the "binary" class name and, if present, the + * exception message. + */ +static bool getExceptionSummary(C_JNIEnv* env, jthrowable exception, std::string& result) { + JNIEnv* e = reinterpret_cast(env); + + /* get the name of the exception's class */ + scoped_local_ref exceptionClass(env, (*env)->GetObjectClass(e, exception)); // can't fail + scoped_local_ref classClass(env, + (*env)->GetObjectClass(e, exceptionClass.get())); // java.lang.Class, can't fail + jmethodID classGetNameMethod = + (*env)->GetMethodID(e, classClass.get(), "getName", "()Ljava/lang/String;"); + scoped_local_ref classNameStr(env, + (jstring) (*env)->CallObjectMethod(e, exceptionClass.get(), classGetNameMethod)); + if (classNameStr.get() == NULL) { + (*env)->ExceptionClear(e); + result = ""; + return false; + } + const char* classNameChars = (*env)->GetStringUTFChars(e, classNameStr.get(), NULL); + if (classNameChars == NULL) { + (*env)->ExceptionClear(e); + result = ""; + return false; + } + result += classNameChars; + (*env)->ReleaseStringUTFChars(e, classNameStr.get(), classNameChars); + + /* if the exception has a detail message, get that */ + jmethodID getMessage = + (*env)->GetMethodID(e, exceptionClass.get(), "getMessage", "()Ljava/lang/String;"); + scoped_local_ref messageStr(env, + (jstring) (*env)->CallObjectMethod(e, exception, getMessage)); + if (messageStr.get() == NULL) { + return true; + } + + result += ": "; + + const char* messageChars = (*env)->GetStringUTFChars(e, messageStr.get(), NULL); + if (messageChars != NULL) { + result += messageChars; + (*env)->ReleaseStringUTFChars(e, messageStr.get(), messageChars); + } else { + result += ""; + (*env)->ExceptionClear(e); // clear OOM + } + + return true; +} + +/* + * Returns an exception (with stack trace) as a string. + */ +static bool getStackTrace(C_JNIEnv* env, jthrowable exception, std::string& result) { + JNIEnv* e = reinterpret_cast(env); + + scoped_local_ref stringWriterClass(env, findClass(env, "java/io/StringWriter")); + if (stringWriterClass.get() == NULL) { + return false; + } + + jmethodID stringWriterCtor = (*env)->GetMethodID(e, stringWriterClass.get(), "", "()V"); + jmethodID stringWriterToStringMethod = + (*env)->GetMethodID(e, stringWriterClass.get(), "toString", "()Ljava/lang/String;"); + + scoped_local_ref printWriterClass(env, findClass(env, "java/io/PrintWriter")); + if (printWriterClass.get() == NULL) { + return false; + } + + jmethodID printWriterCtor = + (*env)->GetMethodID(e, printWriterClass.get(), "", "(Ljava/io/Writer;)V"); + + scoped_local_ref stringWriter(env, + (*env)->NewObject(e, stringWriterClass.get(), stringWriterCtor)); + if (stringWriter.get() == NULL) { + return false; + } + + scoped_local_ref printWriter(env, + (*env)->NewObject(e, printWriterClass.get(), printWriterCtor, stringWriter.get())); + if (printWriter.get() == NULL) { + return false; + } + + scoped_local_ref exceptionClass(env, (*env)->GetObjectClass(e, exception)); // can't fail + jmethodID printStackTraceMethod = + (*env)->GetMethodID(e, exceptionClass.get(), "printStackTrace", "(Ljava/io/PrintWriter;)V"); + (*env)->CallVoidMethod(e, exception, printStackTraceMethod, printWriter.get()); + + if ((*env)->ExceptionCheck(e)) { + return false; + } + + scoped_local_ref messageStr(env, + (jstring) (*env)->CallObjectMethod(e, stringWriter.get(), stringWriterToStringMethod)); + if (messageStr.get() == NULL) { + return false; + } + + const char* utfChars = (*env)->GetStringUTFChars(e, messageStr.get(), NULL); + if (utfChars == NULL) { + return false; + } + + result = utfChars; + + (*env)->ReleaseStringUTFChars(e, messageStr.get(), utfChars); + return true; +} + +extern "C" int jniThrowException(C_JNIEnv* env, const char* className, const char* msg) { + JNIEnv* e = reinterpret_cast(env); + + if ((*env)->ExceptionCheck(e)) { + /* TODO: consider creating the new exception with this as "cause" */ + scoped_local_ref exception(env, (*env)->ExceptionOccurred(e)); + (*env)->ExceptionClear(e); + + if (exception.get() != NULL) { + std::string text; + getExceptionSummary(env, exception.get(), text); + ALOGW("Discarding pending exception (%s) to throw %s", text.c_str(), className); + } + } + + scoped_local_ref exceptionClass(env, findClass(env, className)); + if (exceptionClass.get() == NULL) { + ALOGE("Unable to find exception class %s", className); + /* ClassNotFoundException now pending */ + return -1; + } + + if ((*env)->ThrowNew(e, exceptionClass.get(), msg) != JNI_OK) { + ALOGE("Failed throwing '%s' '%s'", className, msg); + /* an exception, most likely OOM, will now be pending */ + return -1; + } + + return 0; +} + +int jniThrowExceptionFmt(C_JNIEnv* env, const char* className, const char* fmt, va_list args) { + char msgBuf[512]; + vsnprintf(msgBuf, sizeof(msgBuf), fmt, args); + return jniThrowException(env, className, msgBuf); +} + +int jniThrowNullPointerException(C_JNIEnv* env, const char* msg) { + return jniThrowException(env, "java/lang/NullPointerException", msg); +} + +int jniThrowRuntimeException(C_JNIEnv* env, const char* msg) { + return jniThrowException(env, "java/lang/RuntimeException", msg); +} + +int jniThrowIOException(C_JNIEnv* env, int errnum) { + char buffer[80]; + const char* message = jniStrError(errnum, buffer, sizeof(buffer)); + return jniThrowException(env, "java/io/IOException", message); +} + +static std::string jniGetStackTrace(C_JNIEnv* env, jthrowable exception) { + JNIEnv* e = reinterpret_cast(env); + + scoped_local_ref currentException(env, (*env)->ExceptionOccurred(e)); + if (exception == NULL) { + exception = currentException.get(); + if (exception == NULL) { + return ""; + } + } + + if (currentException.get() != NULL) { + (*env)->ExceptionClear(e); + } + + std::string trace; + if (!getStackTrace(env, exception, trace)) { + (*env)->ExceptionClear(e); + getExceptionSummary(env, exception, trace); + } + + if (currentException.get() != NULL) { + (*env)->Throw(e, currentException.get()); // rethrow + } + + return trace; +} + +void jniLogException(C_JNIEnv* env, int priority, const char* tag, jthrowable exception) { + std::string trace(jniGetStackTrace(env, exception)); + __android_log_write(priority, tag, trace.c_str()); +} + +const char* jniStrError(int errnum, char* buf, size_t buflen) { +#if __GLIBC__ + // Note: glibc has a nonstandard strerror_r that returns char* rather than POSIX's int. + // char *strerror_r(int errnum, char *buf, size_t n); + return strerror_r(errnum, buf, buflen); +#else + int rc = strerror_r(errnum, buf, buflen); + if (rc != 0) { + // (POSIX only guarantees a value other than 0. The safest + // way to implement this function is to use C++ and overload on the + // type of strerror_r to accurately distinguish GNU from POSIX.) + snprintf(buf, buflen, "errno %d", errnum); + } + return buf; +#endif +} + +jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd) { + JNIEnv* e = reinterpret_cast(env); + static jmethodID ctor = e->GetMethodID(JniConstants::fileDescriptorClass, "", "()V"); + jobject fileDescriptor = (*env)->NewObject(e, JniConstants::fileDescriptorClass, ctor); + // NOTE: NewObject ensures that an OutOfMemoryError will be seen by the Java + // caller if the alloc fails, so we just return NULL when that happens. + if (fileDescriptor != NULL) { + jniSetFileDescriptorOfFD(env, fileDescriptor, fd); + } + return fileDescriptor; +} + +int jniGetFDFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor) { + JNIEnv* e = reinterpret_cast(env); + static jfieldID fid = e->GetFieldID(JniConstants::fileDescriptorClass, "descriptor", "I"); + if (fileDescriptor != NULL) { + return (*env)->GetIntField(e, fileDescriptor, fid); + } else { + return -1; + } +} + +void jniSetFileDescriptorOfFD(C_JNIEnv* env, jobject fileDescriptor, int value) { + JNIEnv* e = reinterpret_cast(env); + static jfieldID fid = e->GetFieldID(JniConstants::fileDescriptorClass, "descriptor", "I"); + (*env)->SetIntField(e, fileDescriptor, fid, value); +} + +jobject jniGetReferent(C_JNIEnv* env, jobject ref) { + JNIEnv* e = reinterpret_cast(env); + static jmethodID get = e->GetMethodID(JniConstants::referenceClass, "get", "()Ljava/lang/Object;"); + return (*env)->CallObjectMethod(e, ref, get); +} + diff --git a/android/library/src/main/jni/libs/nativehelper/JniConstants.cpp b/android/library/src/main/jni/libs/nativehelper/JniConstants.cpp new file mode 100644 index 0000000..b2b966f --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/JniConstants.cpp @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "JniConstants" + +#include "ALog-priv.h" +#include "JniConstants.h" +#include "ScopedLocalRef.h" + +#include + +jclass JniConstants::bidiRunClass; +jclass JniConstants::bigDecimalClass; +jclass JniConstants::booleanClass; +jclass JniConstants::byteArrayClass; +jclass JniConstants::byteClass; +jclass JniConstants::calendarClass; +jclass JniConstants::characterClass; +jclass JniConstants::charsetICUClass; +jclass JniConstants::constructorClass; +jclass JniConstants::deflaterClass; +jclass JniConstants::doubleClass; +jclass JniConstants::errnoExceptionClass; +jclass JniConstants::fieldClass; +jclass JniConstants::fieldPositionIteratorClass; +jclass JniConstants::fileDescriptorClass; +jclass JniConstants::floatClass; +jclass JniConstants::gaiExceptionClass; +jclass JniConstants::inet6AddressClass; +jclass JniConstants::inetAddressClass; +jclass JniConstants::inetSocketAddressClass; +jclass JniConstants::inetUnixAddressClass; +jclass JniConstants::inflaterClass; +jclass JniConstants::inputStreamClass; +jclass JniConstants::integerClass; +jclass JniConstants::localeDataClass; +jclass JniConstants::longClass; +jclass JniConstants::methodClass; +jclass JniConstants::mutableIntClass; +jclass JniConstants::mutableLongClass; +jclass JniConstants::objectClass; +jclass JniConstants::objectArrayClass; +jclass JniConstants::outputStreamClass; +jclass JniConstants::parsePositionClass; +jclass JniConstants::patternSyntaxExceptionClass; +jclass JniConstants::realToStringClass; +jclass JniConstants::referenceClass; +jclass JniConstants::shortClass; +jclass JniConstants::socketClass; +jclass JniConstants::socketImplClass; +jclass JniConstants::stringClass; +jclass JniConstants::structAddrinfoClass; +jclass JniConstants::structFlockClass; +jclass JniConstants::structGroupReqClass; +jclass JniConstants::structGroupSourceReqClass; +jclass JniConstants::structLingerClass; +jclass JniConstants::structPasswdClass; +jclass JniConstants::structPollfdClass; +jclass JniConstants::structStatClass; +jclass JniConstants::structStatVfsClass; +jclass JniConstants::structTimevalClass; +jclass JniConstants::structUcredClass; +jclass JniConstants::structUtsnameClass; + +static jclass findClass(JNIEnv* env, const char* name) { + ScopedLocalRef localClass(env, env->FindClass(name)); + jclass result = reinterpret_cast(env->NewGlobalRef(localClass.get())); + if (result == NULL) { + ALOGE("failed to find class '%s'", name); + abort(); + } + return result; +} + +void JniConstants::init(JNIEnv* env) { + bidiRunClass = findClass(env, "java/text/Bidi$Run"); + bigDecimalClass = findClass(env, "java/math/BigDecimal"); + booleanClass = findClass(env, "java/lang/Boolean"); + byteClass = findClass(env, "java/lang/Byte"); + byteArrayClass = findClass(env, "[B"); + calendarClass = findClass(env, "java/util/Calendar"); + characterClass = findClass(env, "java/lang/Character"); + charsetICUClass = findClass(env, "java/nio/charset/CharsetICU"); + constructorClass = findClass(env, "java/lang/reflect/Constructor"); + floatClass = findClass(env, "java/lang/Float"); + deflaterClass = findClass(env, "java/util/zip/Deflater"); + doubleClass = findClass(env, "java/lang/Double"); + errnoExceptionClass = findClass(env, "android/system/ErrnoException"); + fieldClass = findClass(env, "java/lang/reflect/Field"); + fieldPositionIteratorClass = findClass(env, "libcore/icu/NativeDecimalFormat$FieldPositionIterator"); + fileDescriptorClass = findClass(env, "java/io/FileDescriptor"); + gaiExceptionClass = findClass(env, "android/system/GaiException"); + inet6AddressClass = findClass(env, "java/net/Inet6Address"); + inetAddressClass = findClass(env, "java/net/InetAddress"); + inetSocketAddressClass = findClass(env, "java/net/InetSocketAddress"); + inetUnixAddressClass = findClass(env, "java/net/InetUnixAddress"); + inflaterClass = findClass(env, "java/util/zip/Inflater"); + inputStreamClass = findClass(env, "java/io/InputStream"); + integerClass = findClass(env, "java/lang/Integer"); + localeDataClass = findClass(env, "libcore/icu/LocaleData"); + longClass = findClass(env, "java/lang/Long"); + methodClass = findClass(env, "java/lang/reflect/Method"); + mutableIntClass = findClass(env, "android/util/MutableInt"); + mutableLongClass = findClass(env, "android/util/MutableLong"); + objectClass = findClass(env, "java/lang/Object"); + objectArrayClass = findClass(env, "[Ljava/lang/Object;"); + outputStreamClass = findClass(env, "java/io/OutputStream"); + parsePositionClass = findClass(env, "java/text/ParsePosition"); + patternSyntaxExceptionClass = findClass(env, "java/util/regex/PatternSyntaxException"); + realToStringClass = findClass(env, "java/lang/RealToString"); + referenceClass = findClass(env, "java/lang/ref/Reference"); + shortClass = findClass(env, "java/lang/Short"); + socketClass = findClass(env, "java/net/Socket"); + socketImplClass = findClass(env, "java/net/SocketImpl"); + stringClass = findClass(env, "java/lang/String"); + structAddrinfoClass = findClass(env, "android/system/StructAddrinfo"); + structFlockClass = findClass(env, "android/system/StructFlock"); + structGroupReqClass = findClass(env, "android/system/StructGroupReq"); + structGroupSourceReqClass = findClass(env, "android/system/StructGroupSourceReq"); + structLingerClass = findClass(env, "android/system/StructLinger"); + structPasswdClass = findClass(env, "android/system/StructPasswd"); + structPollfdClass = findClass(env, "android/system/StructPollfd"); + structStatClass = findClass(env, "android/system/StructStat"); + structStatVfsClass = findClass(env, "android/system/StructStatVfs"); + structTimevalClass = findClass(env, "android/system/StructTimeval"); + structUcredClass = findClass(env, "android/system/StructUcred"); + structUtsnameClass = findClass(env, "android/system/StructUtsname"); +} diff --git a/android/library/src/main/jni/libs/nativehelper/JniInvocation.cpp b/android/library/src/main/jni/libs/nativehelper/JniInvocation.cpp new file mode 100644 index 0000000..f4dd24e --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/JniInvocation.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "JniInvocation.h" + +#include +#include +#include + +#include + +#define LOG_TAG "JniInvocation" +#include "cutils/log.h" + +#ifdef HAVE_ANDROID_OS +#include "cutils/properties.h" +#endif + +JniInvocation* JniInvocation::jni_invocation_ = NULL; + +JniInvocation::JniInvocation() : + handle_(NULL), + JNI_GetDefaultJavaVMInitArgs_(NULL), + JNI_CreateJavaVM_(NULL), + JNI_GetCreatedJavaVMs_(NULL) { + + LOG_ALWAYS_FATAL_IF(jni_invocation_ != NULL, "JniInvocation instance already initialized"); + jni_invocation_ = this; +} + +JniInvocation::~JniInvocation() { + jni_invocation_ = NULL; + if (handle_ != NULL) { + dlclose(handle_); + } +} + +#ifdef HAVE_ANDROID_OS +static const char* kLibrarySystemProperty = "persist.sys.dalvik.vm.lib.2"; +static const char* kDebuggableSystemProperty = "ro.debuggable"; +static const char* kDebuggableFallback = "0"; // Not debuggable. +#endif +static const char* kLibraryFallback = "libart.so"; + +const char* JniInvocation::GetLibrary(const char* library) { +#ifdef HAVE_ANDROID_OS + char default_library[PROPERTY_VALUE_MAX]; + + char debuggable[PROPERTY_VALUE_MAX]; + property_get(kDebuggableSystemProperty, debuggable, kDebuggableFallback); + + if (strcmp(debuggable, "1") != 0) { + // Not a debuggable build. + // Do not allow arbitrary library. Ignore the library parameter. This + // will also ignore the default library, but initialize to empty string + // for cleanliness. + library = kLibraryFallback; + default_library[0] = 0; + } else { + // Debuggable build. + // Accept the library parameter. For the case it is NULL, load the default + // library from the system property. + property_get(kLibrarySystemProperty, default_library, kLibraryFallback); + } +#else + const char* default_library = kLibraryFallback; +#endif + if (library == NULL) { + library = default_library; + } + + return library; +} + +bool JniInvocation::Init(const char* library) { + library = GetLibrary(library); + + handle_ = dlopen(library, RTLD_NOW); + if (handle_ == NULL) { + if (strcmp(library, kLibraryFallback) == 0) { + // Nothing else to try. + ALOGE("Failed to dlopen %s: %s", library, dlerror()); + return false; + } + // Note that this is enough to get something like the zygote + // running, we can't property_set here to fix this for the future + // because we are root and not the system user. See + // RuntimeInit.commonInit for where we fix up the property to + // avoid future fallbacks. http://b/11463182 + ALOGW("Falling back from %s to %s after dlopen error: %s", + library, kLibraryFallback, dlerror()); + library = kLibraryFallback; + handle_ = dlopen(library, RTLD_NOW); + if (handle_ == NULL) { + ALOGE("Failed to dlopen %s: %s", library, dlerror()); + return false; + } + } + if (!FindSymbol(reinterpret_cast(&JNI_GetDefaultJavaVMInitArgs_), + "JNI_GetDefaultJavaVMInitArgs")) { + return false; + } + if (!FindSymbol(reinterpret_cast(&JNI_CreateJavaVM_), + "JNI_CreateJavaVM")) { + return false; + } + if (!FindSymbol(reinterpret_cast(&JNI_GetCreatedJavaVMs_), + "JNI_GetCreatedJavaVMs")) { + return false; + } + return true; +} + +jint JniInvocation::JNI_GetDefaultJavaVMInitArgs(void* vmargs) { + return JNI_GetDefaultJavaVMInitArgs_(vmargs); +} + +jint JniInvocation::JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { + return JNI_CreateJavaVM_(p_vm, p_env, vm_args); +} + +jint JniInvocation::JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count) { + return JNI_GetCreatedJavaVMs_(vms, size, vm_count); +} + +bool JniInvocation::FindSymbol(void** pointer, const char* symbol) { + *pointer = dlsym(handle_, symbol); + if (*pointer == NULL) { + ALOGE("Failed to find symbol %s: %s\n", symbol, dlerror()); + dlclose(handle_); + handle_ = NULL; + return false; + } + return true; +} + +JniInvocation& JniInvocation::GetJniInvocation() { + LOG_ALWAYS_FATAL_IF(jni_invocation_ == NULL, + "Failed to create JniInvocation instance before using JNI invocation API"); + return *jni_invocation_; +} + +extern "C" jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) { + return JniInvocation::GetJniInvocation().JNI_GetDefaultJavaVMInitArgs(vm_args); +} + +extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { + return JniInvocation::GetJniInvocation().JNI_CreateJavaVM(p_vm, p_env, vm_args); +} + +extern "C" jint JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count) { + return JniInvocation::GetJniInvocation().JNI_GetCreatedJavaVMs(vms, size, vm_count); +} diff --git a/android/library/src/main/jni/libs/nativehelper/MODULE_LICENSE_APACHE2 b/android/library/src/main/jni/libs/nativehelper/MODULE_LICENSE_APACHE2 new file mode 100644 index 0000000..e69de29 diff --git a/android/library/src/main/jni/libs/nativehelper/NOTICE b/android/library/src/main/jni/libs/nativehelper/NOTICE new file mode 100644 index 0000000..c5b1efa --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/NOTICE @@ -0,0 +1,190 @@ + + Copyright (c) 2005-2008, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/android/library/src/main/jni/libs/nativehelper/README b/android/library/src/main/jni/libs/nativehelper/README new file mode 100644 index 0000000..5a5f5d4 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/README @@ -0,0 +1,11 @@ +Support functions for Android's class libraries + + +These are VM-agnostic native functions that implement methods for system +class libraries. All code here: + + - MUST not be associated with an android.* class (that code lives in + frameworks/base/). + - SHOULD be written in C rather than C++ where possible. + +Some helper functions are defined in include/nativehelper/JNIHelp.h. diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JNIHelp.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JNIHelp.h new file mode 100644 index 0000000..cfab8f7 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JNIHelp.h @@ -0,0 +1,192 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * JNI helper functions. + * + * This file may be included by C or C++ code, which is trouble because jni.h + * uses different typedefs for JNIEnv in each language. + * + * TODO: remove C support. + */ +#ifndef NATIVEHELPER_JNIHELP_H_ +#define NATIVEHELPER_JNIHELP_H_ + +#include "jni.h" +#include +#include + +#ifndef NELEM +# define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0]))) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Register one or more native methods with a particular class. + * "className" looks like "java/lang/String". Aborts on failure. + * TODO: fix all callers and change the return type to void. + */ +int jniRegisterNativeMethods(C_JNIEnv* env, const char* className, const JNINativeMethod* gMethods, int numMethods); + +/* + * Throw an exception with the specified class and an optional message. + * + * The "className" argument will be passed directly to FindClass, which + * takes strings with slashes (e.g. "java/lang/Object"). + * + * If an exception is currently pending, we log a warning message and + * clear it. + * + * Returns 0 on success, nonzero if something failed (e.g. the exception + * class couldn't be found, so *an* exception will still be pending). + * + * Currently aborts the VM if it can't throw the exception. + */ +int jniThrowException(C_JNIEnv* env, const char* className, const char* msg); + +/* + * Throw a java.lang.NullPointerException, with an optional message. + */ +int jniThrowNullPointerException(C_JNIEnv* env, const char* msg); + +/* + * Throw a java.lang.RuntimeException, with an optional message. + */ +int jniThrowRuntimeException(C_JNIEnv* env, const char* msg); + +/* + * Throw a java.io.IOException, generating the message from errno. + */ +int jniThrowIOException(C_JNIEnv* env, int errnum); + +/* + * Return a pointer to a locale-dependent error string explaining errno + * value 'errnum'. The returned pointer may or may not be equal to 'buf'. + * This function is thread-safe (unlike strerror) and portable (unlike + * strerror_r). + */ +const char* jniStrError(int errnum, char* buf, size_t buflen); + +/* + * Returns a new java.io.FileDescriptor for the given int fd. + */ +jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd); + +/* + * Returns the int fd from a java.io.FileDescriptor. + */ +int jniGetFDFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); + +/* + * Sets the int fd in a java.io.FileDescriptor. + */ +void jniSetFileDescriptorOfFD(C_JNIEnv* env, jobject fileDescriptor, int value); + +/* + * Returns the reference from a java.lang.ref.Reference. + */ +jobject jniGetReferent(C_JNIEnv* env, jobject ref); + +/* + * Log a message and an exception. + * If exception is NULL, logs the current exception in the JNI environment. + */ +void jniLogException(C_JNIEnv* env, int priority, const char* tag, jthrowable exception); + +#ifdef __cplusplus +} +#endif + + +/* + * For C++ code, we provide inlines that map to the C functions. g++ always + * inlines these, even on non-optimized builds. + */ +#if defined(__cplusplus) +inline int jniRegisterNativeMethods(JNIEnv* env, const char* className, const JNINativeMethod* gMethods, int numMethods) { + return jniRegisterNativeMethods(&env->functions, className, gMethods, numMethods); +} + +inline int jniThrowException(JNIEnv* env, const char* className, const char* msg) { + return jniThrowException(&env->functions, className, msg); +} + +extern "C" int jniThrowExceptionFmt(C_JNIEnv* env, const char* className, const char* fmt, va_list args); + +/* + * Equivalent to jniThrowException but with a printf-like format string and + * variable-length argument list. This is only available in C++. + */ +inline int jniThrowExceptionFmt(JNIEnv* env, const char* className, const char* fmt, ...) { + va_list args; + va_start(args, fmt); + return jniThrowExceptionFmt(&env->functions, className, fmt, args); + va_end(args); +} + +inline int jniThrowNullPointerException(JNIEnv* env, const char* msg) { + return jniThrowNullPointerException(&env->functions, msg); +} + +inline int jniThrowRuntimeException(JNIEnv* env, const char* msg) { + return jniThrowRuntimeException(&env->functions, msg); +} + +inline int jniThrowIOException(JNIEnv* env, int errnum) { + return jniThrowIOException(&env->functions, errnum); +} + +inline jobject jniCreateFileDescriptor(JNIEnv* env, int fd) { + return jniCreateFileDescriptor(&env->functions, fd); +} + +inline int jniGetFDFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { + return jniGetFDFromFileDescriptor(&env->functions, fileDescriptor); +} + +inline void jniSetFileDescriptorOfFD(JNIEnv* env, jobject fileDescriptor, int value) { + jniSetFileDescriptorOfFD(&env->functions, fileDescriptor, value); +} + +inline jobject jniGetReferent(JNIEnv* env, jobject ref) { + return jniGetReferent(&env->functions, ref); +} + +inline void jniLogException(JNIEnv* env, int priority, const char* tag, jthrowable exception = NULL) { + jniLogException(&env->functions, priority, tag, exception); +} + +#endif + +/* + * TEMP_FAILURE_RETRY is defined by some, but not all, versions of + * . (Alas, it is not as standard as we'd hoped!) So, if it's + * not already defined, then define it here. + */ +#ifndef TEMP_FAILURE_RETRY +/* Used to retry syscalls that can return EINTR. */ +#define TEMP_FAILURE_RETRY(exp) ({ \ + typeof (exp) _rc; \ + do { \ + _rc = (exp); \ + } while (_rc == -1 && errno == EINTR); \ + _rc; }) +#endif + +#endif /* NATIVEHELPER_JNIHELP_H_ */ diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniConstants.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniConstants.h new file mode 100644 index 0000000..f5498c7 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniConstants.h @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef JNI_CONSTANTS_H_included +#define JNI_CONSTANTS_H_included + +#include "JNIHelp.h" + +/** + * A cache to avoid calling FindClass at runtime. + * + * Class lookup is relatively expensive (2.5us on passion-eng at the time of writing), so we do + * all such lookups eagerly at startup. This means that code that never uses, say, + * java.util.zip.Deflater still has to pay for the lookup, but it means that on a device the cost + * is definitely paid during boot and amortized. A central cache also removes the temptation to + * dynamically call FindClass rather than add a small cache to each file that needs one. Another + * cost is that each class cached here requires a global reference, though in practice we save + * enough by not having a global reference for each file that uses a class such as java.lang.String + * which is used in several files. + * + * FindClass is still called in a couple of situations: when throwing exceptions, and in some of + * the serialization code. The former is clearly not a performance case, and we're currently + * assuming that neither is the latter. + * + * TODO: similar arguments hold for field and method IDs; we should cache them centrally too. + */ +struct JniConstants { + static void init(JNIEnv* env); + + static jclass bidiRunClass; + static jclass bigDecimalClass; + static jclass booleanClass; + static jclass byteArrayClass; + static jclass byteClass; + static jclass calendarClass; + static jclass characterClass; + static jclass charsetICUClass; + static jclass constructorClass; + static jclass deflaterClass; + static jclass doubleClass; + static jclass errnoExceptionClass; + static jclass fieldClass; + static jclass fieldPositionIteratorClass; + static jclass fileDescriptorClass; + static jclass floatClass; + static jclass gaiExceptionClass; + static jclass inet6AddressClass; + static jclass inetAddressClass; + static jclass inetSocketAddressClass; + static jclass inetUnixAddressClass; + static jclass inflaterClass; + static jclass inputStreamClass; + static jclass integerClass; + static jclass localeDataClass; + static jclass longClass; + static jclass methodClass; + static jclass mutableIntClass; + static jclass mutableLongClass; + static jclass objectClass; + static jclass objectArrayClass; + static jclass outputStreamClass; + static jclass parsePositionClass; + static jclass patternSyntaxExceptionClass; + static jclass realToStringClass; + static jclass referenceClass; + static jclass shortClass; + static jclass socketClass; + static jclass socketImplClass; + static jclass stringClass; + static jclass structAddrinfoClass; + static jclass structFlockClass; + static jclass structGroupReqClass; + static jclass structGroupSourceReqClass; + static jclass structLingerClass; + static jclass structPasswdClass; + static jclass structPollfdClass; + static jclass structStatClass; + static jclass structStatVfsClass; + static jclass structTimevalClass; + static jclass structUcredClass; + static jclass structUtsnameClass; +}; + +#define NATIVE_METHOD(className, functionName, signature) \ + { #functionName, signature, reinterpret_cast(className ## _ ## functionName) } + +#endif // JNI_CONSTANTS_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniInvocation.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniInvocation.h new file mode 100644 index 0000000..b5198ff --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/JniInvocation.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef JNI_INVOCATION_H_included +#define JNI_INVOCATION_H_included + +#include + +// JniInvocation adds a layer of indirection for applications using +// the JNI invocation API to allow the JNI implementation to be +// selected dynamically. Apps can specify a specific implementation to +// be used by calling InitJniInvocation. If this is not done, the +// library will chosen based on the value of Android system property +// persist.sys.dalvik.vm.lib on the device, and otherwise fall back to +// a hard-coded default implementation. +class JniInvocation { + public: + JniInvocation(); + + ~JniInvocation(); + + // Initialize JNI invocation API. library should specifiy a valid + // shared library for opening via dlopen providing a JNI invocation + // implementation, or null to allow defaulting via + // persist.sys.dalvik.vm.lib. + bool Init(const char* library); + + // Exposes which library is actually loaded from the given name. + static const char* GetLibrary(const char* library); + + private: + + bool FindSymbol(void** pointer, const char* symbol); + + static JniInvocation& GetJniInvocation(); + + jint JNI_GetDefaultJavaVMInitArgs(void* vmargs); + jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args); + jint JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count); + + static JniInvocation* jni_invocation_; + + void* handle_; + jint (*JNI_GetDefaultJavaVMInitArgs_)(void*); + jint (*JNI_CreateJavaVM_)(JavaVM**, JNIEnv**, void*); + jint (*JNI_GetCreatedJavaVMs_)(JavaVM**, jsize, jsize*); + + friend jint JNI_GetDefaultJavaVMInitArgs(void* vm_args); + friend jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args); + friend jint JNI_GetCreatedJavaVMs(JavaVM** vms, jsize size, jsize* vm_count); +}; + +#endif // JNI_INVOCATION_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedBytes.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedBytes.h new file mode 100644 index 0000000..0aaefe2 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedBytes.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_BYTES_H_included +#define SCOPED_BYTES_H_included + +#include "JNIHelp.h" + +/** + * ScopedBytesRO and ScopedBytesRW attempt to paper over the differences between byte[]s and + * ByteBuffers. This in turn helps paper over the differences between non-direct ByteBuffers backed + * by byte[]s, direct ByteBuffers backed by bytes[]s, and direct ByteBuffers not backed by byte[]s. + * (On Android, this last group only contains MappedByteBuffers.) + */ +template +class ScopedBytes { +public: + ScopedBytes(JNIEnv* env, jbyteArray object) + : mEnv(env), mByteArray(object), mPtr(NULL) + { + if (mByteArray == NULL) { + jniThrowNullPointerException(mEnv, NULL); + } else { + mPtr = mEnv->GetByteArrayElements(mByteArray, NULL); + mLength = mEnv->GetArrayLength(mByteArray); + } + } + + ~ScopedBytes() { + if (mByteArray != NULL) { + mEnv->ReleaseByteArrayElements(mByteArray, mPtr, readOnly ? JNI_ABORT : 0); + } + } + jsize length() { + return mLength; + } + +private: + JNIEnv* mEnv; + jbyteArray mByteArray; + +protected: + jbyte* mPtr; + jsize mLength; + +private: + // Disallow copy and assignment. + ScopedBytes(const ScopedBytes&); + void operator=(const ScopedBytes&); +}; + +class ScopedBytesRO : public ScopedBytes { +public: + ScopedBytesRO(JNIEnv* env, jbyteArray object) : ScopedBytes(env, object) {} + const jbyte* get() const { + return mPtr; + } +}; + +class ScopedBytesRW : public ScopedBytes { +public: + ScopedBytesRW(JNIEnv* env, jbyteArray object) : ScopedBytes(env, object) {} + jbyte* get() { + return mPtr; + } +}; + +#endif // SCOPED_BYTES_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedFd.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedFd.h new file mode 100644 index 0000000..795f50c --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedFd.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_FD_H_included +#define SCOPED_FD_H_included + +#include +#include "JNIHelp.h" // for TEMP_FAILURE_RETRY + +// A smart pointer that closes the given fd on going out of scope. +// Use this when the fd is incidental to the purpose of your function, +// but needs to be cleaned up on exit. +class ScopedFd { +public: + explicit ScopedFd(int fd) : fd(fd) { + } + + ~ScopedFd() { + reset(); + } + + int get() const { + return fd; + } + + int release() __attribute__((warn_unused_result)) { + int localFd = fd; + fd = -1; + return localFd; + } + + void reset(int new_fd = -1) { + if (fd != -1) { + TEMP_FAILURE_RETRY(close(fd)); + } + fd = new_fd; + } + +private: + int fd; + + // Disallow copy and assignment. + ScopedFd(const ScopedFd&); + void operator=(const ScopedFd&); +}; + +#endif // SCOPED_FD_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalFrame.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalFrame.h new file mode 100644 index 0000000..35b6ad8 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalFrame.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_FRAME_H_included +#define SCOPED_LOCAL_FRAME_H_included + +#include "JNIHelp.h" + +class ScopedLocalFrame { +public: + ScopedLocalFrame(JNIEnv* env) : mEnv(env) { + mEnv->PushLocalFrame(128); + } + + ~ScopedLocalFrame() { + mEnv->PopLocalFrame(NULL); + } + +private: + JNIEnv* mEnv; + + // Disallow copy and assignment. + ScopedLocalFrame(const ScopedLocalFrame&); + void operator=(const ScopedLocalFrame&); +}; + +#endif // SCOPED_LOCAL_FRAME_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalRef.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalRef.h new file mode 100644 index 0000000..71d5776 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedLocalRef.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_LOCAL_REF_H_included +#define SCOPED_LOCAL_REF_H_included + +#include "jni.h" + +#include + +// A smart pointer that deletes a JNI local reference when it goes out of scope. +template +class ScopedLocalRef { +public: + ScopedLocalRef(JNIEnv* env, T localRef) : mEnv(env), mLocalRef(localRef) { + } + + ~ScopedLocalRef() { + reset(); + } + + void reset(T ptr = NULL) { + if (ptr != mLocalRef) { + if (mLocalRef != NULL) { + mEnv->DeleteLocalRef(mLocalRef); + } + mLocalRef = ptr; + } + } + + T release() __attribute__((warn_unused_result)) { + T localRef = mLocalRef; + mLocalRef = NULL; + return localRef; + } + + T get() const { + return mLocalRef; + } + +private: + JNIEnv* mEnv; + T mLocalRef; + + // Disallow copy and assignment. + ScopedLocalRef(const ScopedLocalRef&); + void operator=(const ScopedLocalRef&); +}; + +#endif // SCOPED_LOCAL_REF_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedPrimitiveArray.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedPrimitiveArray.h new file mode 100644 index 0000000..d797b9d --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedPrimitiveArray.h @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_PRIMITIVE_ARRAY_H_included +#define SCOPED_PRIMITIVE_ARRAY_H_included + +#include "JNIHelp.h" + +// ScopedBooleanArrayRO, ScopedByteArrayRO, ScopedCharArrayRO, ScopedDoubleArrayRO, +// ScopedFloatArrayRO, ScopedIntArrayRO, ScopedLongArrayRO, and ScopedShortArrayRO provide +// convenient read-only access to Java arrays from JNI code. This is cheaper than read-write +// access and should be used by default. +#define INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(PRIMITIVE_TYPE, NAME) \ + class Scoped ## NAME ## ArrayRO { \ + public: \ + explicit Scoped ## NAME ## ArrayRO(JNIEnv* env) \ + : mEnv(env), mJavaArray(NULL), mRawArray(NULL) {} \ + Scoped ## NAME ## ArrayRO(JNIEnv* env, PRIMITIVE_TYPE ## Array javaArray) \ + : mEnv(env), mJavaArray(javaArray), mRawArray(NULL) { \ + if (mJavaArray == NULL) { \ + jniThrowNullPointerException(mEnv, NULL); \ + } else { \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + } \ + ~Scoped ## NAME ## ArrayRO() { \ + if (mRawArray) { \ + mEnv->Release ## NAME ## ArrayElements(mJavaArray, mRawArray, JNI_ABORT); \ + } \ + } \ + void reset(PRIMITIVE_TYPE ## Array javaArray) { \ + mJavaArray = javaArray; \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + const PRIMITIVE_TYPE* get() const { return mRawArray; } \ + PRIMITIVE_TYPE ## Array getJavaArray() const { return mJavaArray; } \ + const PRIMITIVE_TYPE& operator[](size_t n) const { return mRawArray[n]; } \ + size_t size() const { return mEnv->GetArrayLength(mJavaArray); } \ + private: \ + JNIEnv* mEnv; \ + PRIMITIVE_TYPE ## Array mJavaArray; \ + PRIMITIVE_TYPE* mRawArray; \ + Scoped ## NAME ## ArrayRO(const Scoped ## NAME ## ArrayRO&); \ + void operator=(const Scoped ## NAME ## ArrayRO&); \ + } + +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jboolean, Boolean); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jbyte, Byte); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jchar, Char); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jdouble, Double); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jfloat, Float); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jint, Int); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jlong, Long); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO(jshort, Short); + +#undef INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RO + +// ScopedBooleanArrayRW, ScopedByteArrayRW, ScopedCharArrayRW, ScopedDoubleArrayRW, +// ScopedFloatArrayRW, ScopedIntArrayRW, ScopedLongArrayRW, and ScopedShortArrayRW provide +// convenient read-write access to Java arrays from JNI code. These are more expensive, +// since they entail a copy back onto the Java heap, and should only be used when necessary. +#define INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(PRIMITIVE_TYPE, NAME) \ + class Scoped ## NAME ## ArrayRW { \ + public: \ + explicit Scoped ## NAME ## ArrayRW(JNIEnv* env) \ + : mEnv(env), mJavaArray(NULL), mRawArray(NULL) {} \ + Scoped ## NAME ## ArrayRW(JNIEnv* env, PRIMITIVE_TYPE ## Array javaArray) \ + : mEnv(env), mJavaArray(javaArray), mRawArray(NULL) { \ + if (mJavaArray == NULL) { \ + jniThrowNullPointerException(mEnv, NULL); \ + } else { \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + } \ + ~Scoped ## NAME ## ArrayRW() { \ + if (mRawArray) { \ + mEnv->Release ## NAME ## ArrayElements(mJavaArray, mRawArray, 0); \ + } \ + } \ + void reset(PRIMITIVE_TYPE ## Array javaArray) { \ + mJavaArray = javaArray; \ + mRawArray = mEnv->Get ## NAME ## ArrayElements(mJavaArray, NULL); \ + } \ + const PRIMITIVE_TYPE* get() const { return mRawArray; } \ + PRIMITIVE_TYPE ## Array getJavaArray() const { return mJavaArray; } \ + const PRIMITIVE_TYPE& operator[](size_t n) const { return mRawArray[n]; } \ + PRIMITIVE_TYPE* get() { return mRawArray; } \ + PRIMITIVE_TYPE& operator[](size_t n) { return mRawArray[n]; } \ + size_t size() const { return mEnv->GetArrayLength(mJavaArray); } \ + private: \ + JNIEnv* mEnv; \ + PRIMITIVE_TYPE ## Array mJavaArray; \ + PRIMITIVE_TYPE* mRawArray; \ + Scoped ## NAME ## ArrayRW(const Scoped ## NAME ## ArrayRW&); \ + void operator=(const Scoped ## NAME ## ArrayRW&); \ + } + +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jboolean, Boolean); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jbyte, Byte); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jchar, Char); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jdouble, Double); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jfloat, Float); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jint, Int); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jlong, Long); +INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW(jshort, Short); + +#undef INSTANTIATE_SCOPED_PRIMITIVE_ARRAY_RW + +#endif // SCOPED_PRIMITIVE_ARRAY_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedStringChars.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedStringChars.h new file mode 100644 index 0000000..cfbd247 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedStringChars.h @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_STRING_CHARS_H_included +#define SCOPED_STRING_CHARS_H_included + +#include "JNIHelp.h" + +// A smart pointer that provides access to a jchar* given a JNI jstring. +// Unlike GetStringChars, we throw NullPointerException rather than abort if +// passed a null jstring, and get will return NULL. +// This makes the correct idiom very simple: +// +// ScopedStringChars name(env, java_name); +// if (name.get() == NULL) { +// return NULL; +// } +class ScopedStringChars { + public: + ScopedStringChars(JNIEnv* env, jstring s) : env_(env), string_(s), size_(0) { + if (s == NULL) { + chars_ = NULL; + jniThrowNullPointerException(env, NULL); + } else { + chars_ = env->GetStringChars(string_, NULL); + if (chars_ != NULL) { + size_ = env->GetStringLength(string_); + } + } + } + + ~ScopedStringChars() { + if (chars_ != NULL) { + env_->ReleaseStringChars(string_, chars_); + } + } + + const jchar* get() const { + return chars_; + } + + size_t size() const { + return size_; + } + + const jchar& operator[](size_t n) const { + return chars_[n]; + } + + private: + JNIEnv* env_; + jstring string_; + const jchar* chars_; + size_t size_; + + // Disallow copy and assignment. + ScopedStringChars(const ScopedStringChars&); + void operator=(const ScopedStringChars&); +}; + +#endif // SCOPED_STRING_CHARS_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedUtfChars.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedUtfChars.h new file mode 100644 index 0000000..7761450 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/ScopedUtfChars.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SCOPED_UTF_CHARS_H_included +#define SCOPED_UTF_CHARS_H_included + +#include "JNIHelp.h" +#include + +// A smart pointer that provides read-only access to a Java string's UTF chars. +// Unlike GetStringUTFChars, we throw NullPointerException rather than abort if +// passed a null jstring, and c_str will return NULL. +// This makes the correct idiom very simple: +// +// ScopedUtfChars name(env, java_name); +// if (name.c_str() == NULL) { +// return NULL; +// } +class ScopedUtfChars { + public: + ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) { + if (s == NULL) { + utf_chars_ = NULL; + jniThrowNullPointerException(env, NULL); + } else { + utf_chars_ = env->GetStringUTFChars(s, NULL); + } + } + + ~ScopedUtfChars() { + if (utf_chars_) { + env_->ReleaseStringUTFChars(string_, utf_chars_); + } + } + + const char* c_str() const { + return utf_chars_; + } + + size_t size() const { + return strlen(utf_chars_); + } + + const char& operator[](size_t n) const { + return utf_chars_[n]; + } + + private: + JNIEnv* env_; + jstring string_; + const char* utf_chars_; + + // Disallow copy and assignment. + ScopedUtfChars(const ScopedUtfChars&); + void operator=(const ScopedUtfChars&); +}; + +#endif // SCOPED_UTF_CHARS_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/UniquePtr.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/UniquePtr.h new file mode 100644 index 0000000..50f75b2 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/UniquePtr.h @@ -0,0 +1,241 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef UNIQUE_PTR_H_included +#define UNIQUE_PTR_H_included + +#include // For NULL. + +// This is a fake declaration of std::swap to avoid including +namespace std { +template void swap(T&, T&); +} + +// Default deleter for pointer types. +template +struct DefaultDelete { + enum { type_must_be_complete = sizeof(T) }; + DefaultDelete() {} + void operator()(T* p) const { + delete p; + } +}; + +// Default deleter for array types. +template +struct DefaultDelete { + enum { type_must_be_complete = sizeof(T) }; + void operator()(T* p) const { + delete[] p; + } +}; + +// A smart pointer that deletes the given pointer on destruction. +// Equivalent to C++0x's std::unique_ptr (a combination of boost::scoped_ptr +// and boost::scoped_array). +// Named to be in keeping with Android style but also to avoid +// collision with any other implementation, until we can switch over +// to unique_ptr. +// Use thus: +// UniquePtr c(new C); +template > +class UniquePtr { +public: + // Construct a new UniquePtr, taking ownership of the given raw pointer. + explicit UniquePtr(T* ptr = NULL) : mPtr(ptr) { + } + + ~UniquePtr() { + reset(); + } + + // Accessors. + T& operator*() const { return *mPtr; } + T* operator->() const { return mPtr; } + T* get() const { return mPtr; } + + // Returns the raw pointer and hands over ownership to the caller. + // The pointer will not be deleted by UniquePtr. + T* release() __attribute__((warn_unused_result)) { + T* result = mPtr; + mPtr = NULL; + return result; + } + + // Takes ownership of the given raw pointer. + // If this smart pointer previously owned a different raw pointer, that + // raw pointer will be freed. + void reset(T* ptr = NULL) { + if (ptr != mPtr) { + D()(mPtr); + mPtr = ptr; + } + } + + // Swap with another unique pointer. + void swap(UniquePtr& other) { + std::swap(mPtr, other.mPtr); + } + +private: + // The raw pointer. + T* mPtr; + + // Comparing unique pointers is probably a mistake, since they're unique. + template bool operator==(const UniquePtr& p) const; + template bool operator!=(const UniquePtr& p) const; + + // Disallow copy and assignment. + UniquePtr(const UniquePtr&); + void operator=(const UniquePtr&); +}; + +// Partial specialization for array types. Like std::unique_ptr, this removes +// operator* and operator-> but adds operator[]. +template +class UniquePtr { +public: + explicit UniquePtr(T* ptr = NULL) : mPtr(ptr) { + } + + ~UniquePtr() { + reset(); + } + + T& operator[](size_t i) const { + return mPtr[i]; + } + T* get() const { return mPtr; } + + T* release() __attribute__((warn_unused_result)) { + T* result = mPtr; + mPtr = NULL; + return result; + } + + void reset(T* ptr = NULL) { + if (ptr != mPtr) { + D()(mPtr); + mPtr = ptr; + } + } + +private: + T* mPtr; + + // Disallow copy and assignment. + UniquePtr(const UniquePtr&); + void operator=(const UniquePtr&); +}; + +#if UNIQUE_PTR_TESTS + +// Run these tests with: +// g++ -g -DUNIQUE_PTR_TESTS -x c++ UniquePtr.h && ./a.out + +#include + +static void assert(bool b) { + if (!b) { + fprintf(stderr, "FAIL\n"); + abort(); + } + fprintf(stderr, "OK\n"); +} +static int cCount = 0; +struct C { + C() { ++cCount; } + ~C() { --cCount; } +}; +static bool freed = false; +struct Freer { + void operator()(int* p) { + assert(*p == 123); + free(p); + freed = true; + } +}; + +int main(int argc, char* argv[]) { + // + // UniquePtr tests... + // + + // Can we free a single object? + { + UniquePtr c(new C); + assert(cCount == 1); + } + assert(cCount == 0); + // Does release work? + C* rawC; + { + UniquePtr c(new C); + assert(cCount == 1); + rawC = c.release(); + } + assert(cCount == 1); + delete rawC; + // Does reset work? + { + UniquePtr c(new C); + assert(cCount == 1); + c.reset(new C); + assert(cCount == 1); + } + assert(cCount == 0); + + // + // UniquePtr tests... + // + + // Can we free an array? + { + UniquePtr cs(new C[4]); + assert(cCount == 4); + } + assert(cCount == 0); + // Does release work? + { + UniquePtr c(new C[4]); + assert(cCount == 4); + rawC = c.release(); + } + assert(cCount == 4); + delete[] rawC; + // Does reset work? + { + UniquePtr c(new C[4]); + assert(cCount == 4); + c.reset(new C[2]); + assert(cCount == 2); + } + assert(cCount == 0); + + // + // Custom deleter tests... + // + assert(!freed); + { + UniquePtr i(reinterpret_cast(malloc(sizeof(int)))); + *i = 123; + } + assert(freed); + return 0; +} +#endif + +#endif // UNIQUE_PTR_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/jni.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/jni.h new file mode 100644 index 0000000..1c2fb0c --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/jni.h @@ -0,0 +1,1141 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * JNI specification, as defined by Sun: + * http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html + * + * Everything here is expected to be VM-neutral. + */ + +#ifndef JNI_H_ +#define JNI_H_ + +#include +#include + +/* Primitive types that match up with Java equivalents. */ +typedef uint8_t jboolean; /* unsigned 8 bits */ +typedef int8_t jbyte; /* signed 8 bits */ +typedef uint16_t jchar; /* unsigned 16 bits */ +typedef int16_t jshort; /* signed 16 bits */ +typedef int32_t jint; /* signed 32 bits */ +typedef int64_t jlong; /* signed 64 bits */ +typedef float jfloat; /* 32-bit IEEE 754 */ +typedef double jdouble; /* 64-bit IEEE 754 */ + +/* "cardinal indices and sizes" */ +typedef jint jsize; + +#ifdef __cplusplus +/* + * Reference types, in C++ + */ +class _jobject {}; +class _jclass : public _jobject {}; +class _jstring : public _jobject {}; +class _jarray : public _jobject {}; +class _jobjectArray : public _jarray {}; +class _jbooleanArray : public _jarray {}; +class _jbyteArray : public _jarray {}; +class _jcharArray : public _jarray {}; +class _jshortArray : public _jarray {}; +class _jintArray : public _jarray {}; +class _jlongArray : public _jarray {}; +class _jfloatArray : public _jarray {}; +class _jdoubleArray : public _jarray {}; +class _jthrowable : public _jobject {}; + +typedef _jobject* jobject; +typedef _jclass* jclass; +typedef _jstring* jstring; +typedef _jarray* jarray; +typedef _jobjectArray* jobjectArray; +typedef _jbooleanArray* jbooleanArray; +typedef _jbyteArray* jbyteArray; +typedef _jcharArray* jcharArray; +typedef _jshortArray* jshortArray; +typedef _jintArray* jintArray; +typedef _jlongArray* jlongArray; +typedef _jfloatArray* jfloatArray; +typedef _jdoubleArray* jdoubleArray; +typedef _jthrowable* jthrowable; +typedef _jobject* jweak; + + +#else /* not __cplusplus */ + +/* + * Reference types, in C. + */ +typedef void* jobject; +typedef jobject jclass; +typedef jobject jstring; +typedef jobject jarray; +typedef jarray jobjectArray; +typedef jarray jbooleanArray; +typedef jarray jbyteArray; +typedef jarray jcharArray; +typedef jarray jshortArray; +typedef jarray jintArray; +typedef jarray jlongArray; +typedef jarray jfloatArray; +typedef jarray jdoubleArray; +typedef jobject jthrowable; +typedef jobject jweak; + +#endif /* not __cplusplus */ + +struct _jfieldID; /* opaque structure */ +typedef struct _jfieldID* jfieldID; /* field IDs */ + +struct _jmethodID; /* opaque structure */ +typedef struct _jmethodID* jmethodID; /* method IDs */ + +struct JNIInvokeInterface; + +typedef union jvalue { + jboolean z; + jbyte b; + jchar c; + jshort s; + jint i; + jlong j; + jfloat f; + jdouble d; + jobject l; +} jvalue; + +typedef enum jobjectRefType { + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +} jobjectRefType; + +typedef struct { + const char* name; + const char* signature; + void* fnPtr; +} JNINativeMethod; + +struct _JNIEnv; +struct _JavaVM; +typedef const struct JNINativeInterface* C_JNIEnv; + +#if defined(__cplusplus) +typedef _JNIEnv JNIEnv; +typedef _JavaVM JavaVM; +#else +typedef const struct JNINativeInterface* JNIEnv; +typedef const struct JNIInvokeInterface* JavaVM; +#endif + +/* + * Table of interface function pointers. + */ +struct JNINativeInterface { + void* reserved0; + void* reserved1; + void* reserved2; + void* reserved3; + + jint (*GetVersion)(JNIEnv *); + + jclass (*DefineClass)(JNIEnv*, const char*, jobject, const jbyte*, + jsize); + jclass (*FindClass)(JNIEnv*, const char*); + + jmethodID (*FromReflectedMethod)(JNIEnv*, jobject); + jfieldID (*FromReflectedField)(JNIEnv*, jobject); + /* spec doesn't show jboolean parameter */ + jobject (*ToReflectedMethod)(JNIEnv*, jclass, jmethodID, jboolean); + + jclass (*GetSuperclass)(JNIEnv*, jclass); + jboolean (*IsAssignableFrom)(JNIEnv*, jclass, jclass); + + /* spec doesn't show jboolean parameter */ + jobject (*ToReflectedField)(JNIEnv*, jclass, jfieldID, jboolean); + + jint (*Throw)(JNIEnv*, jthrowable); + jint (*ThrowNew)(JNIEnv *, jclass, const char *); + jthrowable (*ExceptionOccurred)(JNIEnv*); + void (*ExceptionDescribe)(JNIEnv*); + void (*ExceptionClear)(JNIEnv*); + void (*FatalError)(JNIEnv*, const char*); + + jint (*PushLocalFrame)(JNIEnv*, jint); + jobject (*PopLocalFrame)(JNIEnv*, jobject); + + jobject (*NewGlobalRef)(JNIEnv*, jobject); + void (*DeleteGlobalRef)(JNIEnv*, jobject); + void (*DeleteLocalRef)(JNIEnv*, jobject); + jboolean (*IsSameObject)(JNIEnv*, jobject, jobject); + + jobject (*NewLocalRef)(JNIEnv*, jobject); + jint (*EnsureLocalCapacity)(JNIEnv*, jint); + + jobject (*AllocObject)(JNIEnv*, jclass); + jobject (*NewObject)(JNIEnv*, jclass, jmethodID, ...); + jobject (*NewObjectV)(JNIEnv*, jclass, jmethodID, va_list); + jobject (*NewObjectA)(JNIEnv*, jclass, jmethodID, jvalue*); + + jclass (*GetObjectClass)(JNIEnv*, jobject); + jboolean (*IsInstanceOf)(JNIEnv*, jobject, jclass); + jmethodID (*GetMethodID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...); + jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jobject (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jboolean (*CallBooleanMethod)(JNIEnv*, jobject, jmethodID, ...); + jboolean (*CallBooleanMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jboolean (*CallBooleanMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jbyte (*CallByteMethod)(JNIEnv*, jobject, jmethodID, ...); + jbyte (*CallByteMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jbyte (*CallByteMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jchar (*CallCharMethod)(JNIEnv*, jobject, jmethodID, ...); + jchar (*CallCharMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jchar (*CallCharMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jshort (*CallShortMethod)(JNIEnv*, jobject, jmethodID, ...); + jshort (*CallShortMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jshort (*CallShortMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jint (*CallIntMethod)(JNIEnv*, jobject, jmethodID, ...); + jint (*CallIntMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jint (*CallIntMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jlong (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...); + jlong (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jlong (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...); + jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...); + jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list); + jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + void (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...); + void (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list); + void (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); + + jobject (*CallNonvirtualObjectMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jobject (*CallNonvirtualObjectMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jobject (*CallNonvirtualObjectMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jboolean (*CallNonvirtualBooleanMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jboolean (*CallNonvirtualBooleanMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jboolean (*CallNonvirtualBooleanMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jbyte (*CallNonvirtualByteMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jbyte (*CallNonvirtualByteMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jbyte (*CallNonvirtualByteMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jchar (*CallNonvirtualCharMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jchar (*CallNonvirtualCharMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jchar (*CallNonvirtualCharMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jshort (*CallNonvirtualShortMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jshort (*CallNonvirtualShortMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jshort (*CallNonvirtualShortMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jint (*CallNonvirtualIntMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jint (*CallNonvirtualIntMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jint (*CallNonvirtualIntMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jlong (*CallNonvirtualLongMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jlong (*CallNonvirtualLongMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jlong (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jfloat (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jfloat (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jfloat (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + jdouble (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + jdouble (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + jdouble (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + void (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass, + jmethodID, ...); + void (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass, + jmethodID, va_list); + void (*CallNonvirtualVoidMethodA)(JNIEnv*, jobject, jclass, + jmethodID, jvalue*); + + jfieldID (*GetFieldID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*GetObjectField)(JNIEnv*, jobject, jfieldID); + jboolean (*GetBooleanField)(JNIEnv*, jobject, jfieldID); + jbyte (*GetByteField)(JNIEnv*, jobject, jfieldID); + jchar (*GetCharField)(JNIEnv*, jobject, jfieldID); + jshort (*GetShortField)(JNIEnv*, jobject, jfieldID); + jint (*GetIntField)(JNIEnv*, jobject, jfieldID); + jlong (*GetLongField)(JNIEnv*, jobject, jfieldID); + jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID); + jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID); + + void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject); + void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean); + void (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte); + void (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar); + void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort); + void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint); + void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong); + void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat); + void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble); + + jmethodID (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*); + + jobject (*CallStaticObjectMethod)(JNIEnv*, jclass, jmethodID, ...); + jobject (*CallStaticObjectMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jobject (*CallStaticObjectMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jboolean (*CallStaticBooleanMethod)(JNIEnv*, jclass, jmethodID, ...); + jboolean (*CallStaticBooleanMethodV)(JNIEnv*, jclass, jmethodID, + va_list); + jboolean (*CallStaticBooleanMethodA)(JNIEnv*, jclass, jmethodID, + jvalue*); + jbyte (*CallStaticByteMethod)(JNIEnv*, jclass, jmethodID, ...); + jbyte (*CallStaticByteMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jbyte (*CallStaticByteMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jchar (*CallStaticCharMethod)(JNIEnv*, jclass, jmethodID, ...); + jchar (*CallStaticCharMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jchar (*CallStaticCharMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jshort (*CallStaticShortMethod)(JNIEnv*, jclass, jmethodID, ...); + jshort (*CallStaticShortMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jshort (*CallStaticShortMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jint (*CallStaticIntMethod)(JNIEnv*, jclass, jmethodID, ...); + jint (*CallStaticIntMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jint (*CallStaticIntMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jlong (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...); + jlong (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jlong (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...); + jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...); + jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list); + jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + void (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...); + void (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list); + void (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); + + jfieldID (*GetStaticFieldID)(JNIEnv*, jclass, const char*, + const char*); + + jobject (*GetStaticObjectField)(JNIEnv*, jclass, jfieldID); + jboolean (*GetStaticBooleanField)(JNIEnv*, jclass, jfieldID); + jbyte (*GetStaticByteField)(JNIEnv*, jclass, jfieldID); + jchar (*GetStaticCharField)(JNIEnv*, jclass, jfieldID); + jshort (*GetStaticShortField)(JNIEnv*, jclass, jfieldID); + jint (*GetStaticIntField)(JNIEnv*, jclass, jfieldID); + jlong (*GetStaticLongField)(JNIEnv*, jclass, jfieldID); + jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID); + jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID); + + void (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject); + void (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean); + void (*SetStaticByteField)(JNIEnv*, jclass, jfieldID, jbyte); + void (*SetStaticCharField)(JNIEnv*, jclass, jfieldID, jchar); + void (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort); + void (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint); + void (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong); + void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat); + void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble); + + jstring (*NewString)(JNIEnv*, const jchar*, jsize); + jsize (*GetStringLength)(JNIEnv*, jstring); + const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*); + jstring (*NewStringUTF)(JNIEnv*, const char*); + jsize (*GetStringUTFLength)(JNIEnv*, jstring); + /* JNI spec says this returns const jbyte*, but that's inconsistent */ + const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*); + jsize (*GetArrayLength)(JNIEnv*, jarray); + jobjectArray (*NewObjectArray)(JNIEnv*, jsize, jclass, jobject); + jobject (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize); + void (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject); + + jbooleanArray (*NewBooleanArray)(JNIEnv*, jsize); + jbyteArray (*NewByteArray)(JNIEnv*, jsize); + jcharArray (*NewCharArray)(JNIEnv*, jsize); + jshortArray (*NewShortArray)(JNIEnv*, jsize); + jintArray (*NewIntArray)(JNIEnv*, jsize); + jlongArray (*NewLongArray)(JNIEnv*, jsize); + jfloatArray (*NewFloatArray)(JNIEnv*, jsize); + jdoubleArray (*NewDoubleArray)(JNIEnv*, jsize); + + jboolean* (*GetBooleanArrayElements)(JNIEnv*, jbooleanArray, jboolean*); + jbyte* (*GetByteArrayElements)(JNIEnv*, jbyteArray, jboolean*); + jchar* (*GetCharArrayElements)(JNIEnv*, jcharArray, jboolean*); + jshort* (*GetShortArrayElements)(JNIEnv*, jshortArray, jboolean*); + jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*); + jlong* (*GetLongArrayElements)(JNIEnv*, jlongArray, jboolean*); + jfloat* (*GetFloatArrayElements)(JNIEnv*, jfloatArray, jboolean*); + jdouble* (*GetDoubleArrayElements)(JNIEnv*, jdoubleArray, jboolean*); + + void (*ReleaseBooleanArrayElements)(JNIEnv*, jbooleanArray, + jboolean*, jint); + void (*ReleaseByteArrayElements)(JNIEnv*, jbyteArray, + jbyte*, jint); + void (*ReleaseCharArrayElements)(JNIEnv*, jcharArray, + jchar*, jint); + void (*ReleaseShortArrayElements)(JNIEnv*, jshortArray, + jshort*, jint); + void (*ReleaseIntArrayElements)(JNIEnv*, jintArray, + jint*, jint); + void (*ReleaseLongArrayElements)(JNIEnv*, jlongArray, + jlong*, jint); + void (*ReleaseFloatArrayElements)(JNIEnv*, jfloatArray, + jfloat*, jint); + void (*ReleaseDoubleArrayElements)(JNIEnv*, jdoubleArray, + jdouble*, jint); + + void (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray, + jsize, jsize, jboolean*); + void (*GetByteArrayRegion)(JNIEnv*, jbyteArray, + jsize, jsize, jbyte*); + void (*GetCharArrayRegion)(JNIEnv*, jcharArray, + jsize, jsize, jchar*); + void (*GetShortArrayRegion)(JNIEnv*, jshortArray, + jsize, jsize, jshort*); + void (*GetIntArrayRegion)(JNIEnv*, jintArray, + jsize, jsize, jint*); + void (*GetLongArrayRegion)(JNIEnv*, jlongArray, + jsize, jsize, jlong*); + void (*GetFloatArrayRegion)(JNIEnv*, jfloatArray, + jsize, jsize, jfloat*); + void (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray, + jsize, jsize, jdouble*); + + /* spec shows these without const; some jni.h do, some don't */ + void (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray, + jsize, jsize, const jboolean*); + void (*SetByteArrayRegion)(JNIEnv*, jbyteArray, + jsize, jsize, const jbyte*); + void (*SetCharArrayRegion)(JNIEnv*, jcharArray, + jsize, jsize, const jchar*); + void (*SetShortArrayRegion)(JNIEnv*, jshortArray, + jsize, jsize, const jshort*); + void (*SetIntArrayRegion)(JNIEnv*, jintArray, + jsize, jsize, const jint*); + void (*SetLongArrayRegion)(JNIEnv*, jlongArray, + jsize, jsize, const jlong*); + void (*SetFloatArrayRegion)(JNIEnv*, jfloatArray, + jsize, jsize, const jfloat*); + void (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray, + jsize, jsize, const jdouble*); + + jint (*RegisterNatives)(JNIEnv*, jclass, const JNINativeMethod*, + jint); + jint (*UnregisterNatives)(JNIEnv*, jclass); + jint (*MonitorEnter)(JNIEnv*, jobject); + jint (*MonitorExit)(JNIEnv*, jobject); + jint (*GetJavaVM)(JNIEnv*, JavaVM**); + + void (*GetStringRegion)(JNIEnv*, jstring, jsize, jsize, jchar*); + void (*GetStringUTFRegion)(JNIEnv*, jstring, jsize, jsize, char*); + + void* (*GetPrimitiveArrayCritical)(JNIEnv*, jarray, jboolean*); + void (*ReleasePrimitiveArrayCritical)(JNIEnv*, jarray, void*, jint); + + const jchar* (*GetStringCritical)(JNIEnv*, jstring, jboolean*); + void (*ReleaseStringCritical)(JNIEnv*, jstring, const jchar*); + + jweak (*NewWeakGlobalRef)(JNIEnv*, jobject); + void (*DeleteWeakGlobalRef)(JNIEnv*, jweak); + + jboolean (*ExceptionCheck)(JNIEnv*); + + jobject (*NewDirectByteBuffer)(JNIEnv*, void*, jlong); + void* (*GetDirectBufferAddress)(JNIEnv*, jobject); + jlong (*GetDirectBufferCapacity)(JNIEnv*, jobject); + + /* added in JNI 1.6 */ + jobjectRefType (*GetObjectRefType)(JNIEnv*, jobject); +}; + +/* + * C++ object wrapper. + * + * This is usually overlaid on a C struct whose first element is a + * JNINativeInterface*. We rely somewhat on compiler behavior. + */ +struct _JNIEnv { + /* do not rename this; it does not seem to be entirely opaque */ + const struct JNINativeInterface* functions; + +#if defined(__cplusplus) + + jint GetVersion() + { return functions->GetVersion(this); } + + jclass DefineClass(const char *name, jobject loader, const jbyte* buf, + jsize bufLen) + { return functions->DefineClass(this, name, loader, buf, bufLen); } + + jclass FindClass(const char* name) + { return functions->FindClass(this, name); } + + jmethodID FromReflectedMethod(jobject method) + { return functions->FromReflectedMethod(this, method); } + + jfieldID FromReflectedField(jobject field) + { return functions->FromReflectedField(this, field); } + + jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) + { return functions->ToReflectedMethod(this, cls, methodID, isStatic); } + + jclass GetSuperclass(jclass clazz) + { return functions->GetSuperclass(this, clazz); } + + jboolean IsAssignableFrom(jclass clazz1, jclass clazz2) + { return functions->IsAssignableFrom(this, clazz1, clazz2); } + + jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) + { return functions->ToReflectedField(this, cls, fieldID, isStatic); } + + jint Throw(jthrowable obj) + { return functions->Throw(this, obj); } + + jint ThrowNew(jclass clazz, const char* message) + { return functions->ThrowNew(this, clazz, message); } + + jthrowable ExceptionOccurred() + { return functions->ExceptionOccurred(this); } + + void ExceptionDescribe() + { functions->ExceptionDescribe(this); } + + void ExceptionClear() + { functions->ExceptionClear(this); } + + void FatalError(const char* msg) + { functions->FatalError(this, msg); } + + jint PushLocalFrame(jint capacity) + { return functions->PushLocalFrame(this, capacity); } + + jobject PopLocalFrame(jobject result) + { return functions->PopLocalFrame(this, result); } + + jobject NewGlobalRef(jobject obj) + { return functions->NewGlobalRef(this, obj); } + + void DeleteGlobalRef(jobject globalRef) + { functions->DeleteGlobalRef(this, globalRef); } + + void DeleteLocalRef(jobject localRef) + { functions->DeleteLocalRef(this, localRef); } + + jboolean IsSameObject(jobject ref1, jobject ref2) + { return functions->IsSameObject(this, ref1, ref2); } + + jobject NewLocalRef(jobject ref) + { return functions->NewLocalRef(this, ref); } + + jint EnsureLocalCapacity(jint capacity) + { return functions->EnsureLocalCapacity(this, capacity); } + + jobject AllocObject(jclass clazz) + { return functions->AllocObject(this, clazz); } + + jobject NewObject(jclass clazz, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + jobject result = functions->NewObjectV(this, clazz, methodID, args); + va_end(args); + return result; + } + + jobject NewObjectV(jclass clazz, jmethodID methodID, va_list args) + { return functions->NewObjectV(this, clazz, methodID, args); } + + jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue* args) + { return functions->NewObjectA(this, clazz, methodID, args); } + + jclass GetObjectClass(jobject obj) + { return functions->GetObjectClass(this, obj); } + + jboolean IsInstanceOf(jobject obj, jclass clazz) + { return functions->IsInstanceOf(this, obj, clazz); } + + jmethodID GetMethodID(jclass clazz, const char* name, const char* sig) + { return functions->GetMethodID(this, clazz, name, sig); } + +#define CALL_TYPE_METHOD(_jtype, _jname) \ + _jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->Call##_jname##MethodV(this, obj, methodID, \ + args); \ + va_end(args); \ + return result; \ + } +#define CALL_TYPE_METHODV(_jtype, _jname) \ + _jtype Call##_jname##MethodV(jobject obj, jmethodID methodID, \ + va_list args) \ + { return functions->Call##_jname##MethodV(this, obj, methodID, args); } +#define CALL_TYPE_METHODA(_jtype, _jname) \ + _jtype Call##_jname##MethodA(jobject obj, jmethodID methodID, \ + jvalue* args) \ + { return functions->Call##_jname##MethodA(this, obj, methodID, args); } + +#define CALL_TYPE(_jtype, _jname) \ + CALL_TYPE_METHOD(_jtype, _jname) \ + CALL_TYPE_METHODV(_jtype, _jname) \ + CALL_TYPE_METHODA(_jtype, _jname) + + CALL_TYPE(jobject, Object) + CALL_TYPE(jboolean, Boolean) + CALL_TYPE(jbyte, Byte) + CALL_TYPE(jchar, Char) + CALL_TYPE(jshort, Short) + CALL_TYPE(jint, Int) + CALL_TYPE(jlong, Long) + CALL_TYPE(jfloat, Float) + CALL_TYPE(jdouble, Double) + + void CallVoidMethod(jobject obj, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallVoidMethodV(this, obj, methodID, args); + va_end(args); + } + void CallVoidMethodV(jobject obj, jmethodID methodID, va_list args) + { functions->CallVoidMethodV(this, obj, methodID, args); } + void CallVoidMethodA(jobject obj, jmethodID methodID, jvalue* args) + { functions->CallVoidMethodA(this, obj, methodID, args); } + +#define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz, \ + jmethodID methodID, ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->CallNonvirtual##_jname##MethodV(this, obj, \ + clazz, methodID, args); \ + va_end(args); \ + return result; \ + } +#define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz, \ + jmethodID methodID, va_list args) \ + { return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz, \ + methodID, args); } +#define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) \ + _jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz, \ + jmethodID methodID, jvalue* args) \ + { return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz, \ + methodID, args); } + +#define CALL_NONVIRT_TYPE(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ + CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) + + CALL_NONVIRT_TYPE(jobject, Object) + CALL_NONVIRT_TYPE(jboolean, Boolean) + CALL_NONVIRT_TYPE(jbyte, Byte) + CALL_NONVIRT_TYPE(jchar, Char) + CALL_NONVIRT_TYPE(jshort, Short) + CALL_NONVIRT_TYPE(jint, Int) + CALL_NONVIRT_TYPE(jlong, Long) + CALL_NONVIRT_TYPE(jfloat, Float) + CALL_NONVIRT_TYPE(jdouble, Double) + + void CallNonvirtualVoidMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); + va_end(args); + } + void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) + { functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); } + void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, + jmethodID methodID, jvalue* args) + { functions->CallNonvirtualVoidMethodA(this, obj, clazz, methodID, args); } + + jfieldID GetFieldID(jclass clazz, const char* name, const char* sig) + { return functions->GetFieldID(this, clazz, name, sig); } + + jobject GetObjectField(jobject obj, jfieldID fieldID) + { return functions->GetObjectField(this, obj, fieldID); } + jboolean GetBooleanField(jobject obj, jfieldID fieldID) + { return functions->GetBooleanField(this, obj, fieldID); } + jbyte GetByteField(jobject obj, jfieldID fieldID) + { return functions->GetByteField(this, obj, fieldID); } + jchar GetCharField(jobject obj, jfieldID fieldID) + { return functions->GetCharField(this, obj, fieldID); } + jshort GetShortField(jobject obj, jfieldID fieldID) + { return functions->GetShortField(this, obj, fieldID); } + jint GetIntField(jobject obj, jfieldID fieldID) + { return functions->GetIntField(this, obj, fieldID); } + jlong GetLongField(jobject obj, jfieldID fieldID) + { return functions->GetLongField(this, obj, fieldID); } + jfloat GetFloatField(jobject obj, jfieldID fieldID) + { return functions->GetFloatField(this, obj, fieldID); } + jdouble GetDoubleField(jobject obj, jfieldID fieldID) + { return functions->GetDoubleField(this, obj, fieldID); } + + void SetObjectField(jobject obj, jfieldID fieldID, jobject value) + { functions->SetObjectField(this, obj, fieldID, value); } + void SetBooleanField(jobject obj, jfieldID fieldID, jboolean value) + { functions->SetBooleanField(this, obj, fieldID, value); } + void SetByteField(jobject obj, jfieldID fieldID, jbyte value) + { functions->SetByteField(this, obj, fieldID, value); } + void SetCharField(jobject obj, jfieldID fieldID, jchar value) + { functions->SetCharField(this, obj, fieldID, value); } + void SetShortField(jobject obj, jfieldID fieldID, jshort value) + { functions->SetShortField(this, obj, fieldID, value); } + void SetIntField(jobject obj, jfieldID fieldID, jint value) + { functions->SetIntField(this, obj, fieldID, value); } + void SetLongField(jobject obj, jfieldID fieldID, jlong value) + { functions->SetLongField(this, obj, fieldID, value); } + void SetFloatField(jobject obj, jfieldID fieldID, jfloat value) + { functions->SetFloatField(this, obj, fieldID, value); } + void SetDoubleField(jobject obj, jfieldID fieldID, jdouble value) + { functions->SetDoubleField(this, obj, fieldID, value); } + + jmethodID GetStaticMethodID(jclass clazz, const char* name, const char* sig) + { return functions->GetStaticMethodID(this, clazz, name, sig); } + +#define CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ + _jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID, \ + ...) \ + { \ + _jtype result; \ + va_list args; \ + va_start(args, methodID); \ + result = functions->CallStatic##_jname##MethodV(this, clazz, \ + methodID, args); \ + va_end(args); \ + return result; \ + } +#define CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ + _jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID, \ + va_list args) \ + { return functions->CallStatic##_jname##MethodV(this, clazz, methodID, \ + args); } +#define CALL_STATIC_TYPE_METHODA(_jtype, _jname) \ + _jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID, \ + jvalue* args) \ + { return functions->CallStatic##_jname##MethodA(this, clazz, methodID, \ + args); } + +#define CALL_STATIC_TYPE(_jtype, _jname) \ + CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ + CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ + CALL_STATIC_TYPE_METHODA(_jtype, _jname) + + CALL_STATIC_TYPE(jobject, Object) + CALL_STATIC_TYPE(jboolean, Boolean) + CALL_STATIC_TYPE(jbyte, Byte) + CALL_STATIC_TYPE(jchar, Char) + CALL_STATIC_TYPE(jshort, Short) + CALL_STATIC_TYPE(jint, Int) + CALL_STATIC_TYPE(jlong, Long) + CALL_STATIC_TYPE(jfloat, Float) + CALL_STATIC_TYPE(jdouble, Double) + + void CallStaticVoidMethod(jclass clazz, jmethodID methodID, ...) + { + va_list args; + va_start(args, methodID); + functions->CallStaticVoidMethodV(this, clazz, methodID, args); + va_end(args); + } + void CallStaticVoidMethodV(jclass clazz, jmethodID methodID, va_list args) + { functions->CallStaticVoidMethodV(this, clazz, methodID, args); } + void CallStaticVoidMethodA(jclass clazz, jmethodID methodID, jvalue* args) + { functions->CallStaticVoidMethodA(this, clazz, methodID, args); } + + jfieldID GetStaticFieldID(jclass clazz, const char* name, const char* sig) + { return functions->GetStaticFieldID(this, clazz, name, sig); } + + jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticObjectField(this, clazz, fieldID); } + jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticBooleanField(this, clazz, fieldID); } + jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticByteField(this, clazz, fieldID); } + jchar GetStaticCharField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticCharField(this, clazz, fieldID); } + jshort GetStaticShortField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticShortField(this, clazz, fieldID); } + jint GetStaticIntField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticIntField(this, clazz, fieldID); } + jlong GetStaticLongField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticLongField(this, clazz, fieldID); } + jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticFloatField(this, clazz, fieldID); } + jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) + { return functions->GetStaticDoubleField(this, clazz, fieldID); } + + void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) + { functions->SetStaticObjectField(this, clazz, fieldID, value); } + void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) + { functions->SetStaticBooleanField(this, clazz, fieldID, value); } + void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) + { functions->SetStaticByteField(this, clazz, fieldID, value); } + void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) + { functions->SetStaticCharField(this, clazz, fieldID, value); } + void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) + { functions->SetStaticShortField(this, clazz, fieldID, value); } + void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) + { functions->SetStaticIntField(this, clazz, fieldID, value); } + void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) + { functions->SetStaticLongField(this, clazz, fieldID, value); } + void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) + { functions->SetStaticFloatField(this, clazz, fieldID, value); } + void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) + { functions->SetStaticDoubleField(this, clazz, fieldID, value); } + + jstring NewString(const jchar* unicodeChars, jsize len) + { return functions->NewString(this, unicodeChars, len); } + + jsize GetStringLength(jstring string) + { return functions->GetStringLength(this, string); } + + const jchar* GetStringChars(jstring string, jboolean* isCopy) + { return functions->GetStringChars(this, string, isCopy); } + + void ReleaseStringChars(jstring string, const jchar* chars) + { functions->ReleaseStringChars(this, string, chars); } + + jstring NewStringUTF(const char* bytes) + { return functions->NewStringUTF(this, bytes); } + + jsize GetStringUTFLength(jstring string) + { return functions->GetStringUTFLength(this, string); } + + const char* GetStringUTFChars(jstring string, jboolean* isCopy) + { return functions->GetStringUTFChars(this, string, isCopy); } + + void ReleaseStringUTFChars(jstring string, const char* utf) + { functions->ReleaseStringUTFChars(this, string, utf); } + + jsize GetArrayLength(jarray array) + { return functions->GetArrayLength(this, array); } + + jobjectArray NewObjectArray(jsize length, jclass elementClass, + jobject initialElement) + { return functions->NewObjectArray(this, length, elementClass, + initialElement); } + + jobject GetObjectArrayElement(jobjectArray array, jsize index) + { return functions->GetObjectArrayElement(this, array, index); } + + void SetObjectArrayElement(jobjectArray array, jsize index, jobject value) + { functions->SetObjectArrayElement(this, array, index, value); } + + jbooleanArray NewBooleanArray(jsize length) + { return functions->NewBooleanArray(this, length); } + jbyteArray NewByteArray(jsize length) + { return functions->NewByteArray(this, length); } + jcharArray NewCharArray(jsize length) + { return functions->NewCharArray(this, length); } + jshortArray NewShortArray(jsize length) + { return functions->NewShortArray(this, length); } + jintArray NewIntArray(jsize length) + { return functions->NewIntArray(this, length); } + jlongArray NewLongArray(jsize length) + { return functions->NewLongArray(this, length); } + jfloatArray NewFloatArray(jsize length) + { return functions->NewFloatArray(this, length); } + jdoubleArray NewDoubleArray(jsize length) + { return functions->NewDoubleArray(this, length); } + + jboolean* GetBooleanArrayElements(jbooleanArray array, jboolean* isCopy) + { return functions->GetBooleanArrayElements(this, array, isCopy); } + jbyte* GetByteArrayElements(jbyteArray array, jboolean* isCopy) + { return functions->GetByteArrayElements(this, array, isCopy); } + jchar* GetCharArrayElements(jcharArray array, jboolean* isCopy) + { return functions->GetCharArrayElements(this, array, isCopy); } + jshort* GetShortArrayElements(jshortArray array, jboolean* isCopy) + { return functions->GetShortArrayElements(this, array, isCopy); } + jint* GetIntArrayElements(jintArray array, jboolean* isCopy) + { return functions->GetIntArrayElements(this, array, isCopy); } + jlong* GetLongArrayElements(jlongArray array, jboolean* isCopy) + { return functions->GetLongArrayElements(this, array, isCopy); } + jfloat* GetFloatArrayElements(jfloatArray array, jboolean* isCopy) + { return functions->GetFloatArrayElements(this, array, isCopy); } + jdouble* GetDoubleArrayElements(jdoubleArray array, jboolean* isCopy) + { return functions->GetDoubleArrayElements(this, array, isCopy); } + + void ReleaseBooleanArrayElements(jbooleanArray array, jboolean* elems, + jint mode) + { functions->ReleaseBooleanArrayElements(this, array, elems, mode); } + void ReleaseByteArrayElements(jbyteArray array, jbyte* elems, + jint mode) + { functions->ReleaseByteArrayElements(this, array, elems, mode); } + void ReleaseCharArrayElements(jcharArray array, jchar* elems, + jint mode) + { functions->ReleaseCharArrayElements(this, array, elems, mode); } + void ReleaseShortArrayElements(jshortArray array, jshort* elems, + jint mode) + { functions->ReleaseShortArrayElements(this, array, elems, mode); } + void ReleaseIntArrayElements(jintArray array, jint* elems, + jint mode) + { functions->ReleaseIntArrayElements(this, array, elems, mode); } + void ReleaseLongArrayElements(jlongArray array, jlong* elems, + jint mode) + { functions->ReleaseLongArrayElements(this, array, elems, mode); } + void ReleaseFloatArrayElements(jfloatArray array, jfloat* elems, + jint mode) + { functions->ReleaseFloatArrayElements(this, array, elems, mode); } + void ReleaseDoubleArrayElements(jdoubleArray array, jdouble* elems, + jint mode) + { functions->ReleaseDoubleArrayElements(this, array, elems, mode); } + + void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + jboolean* buf) + { functions->GetBooleanArrayRegion(this, array, start, len, buf); } + void GetByteArrayRegion(jbyteArray array, jsize start, jsize len, + jbyte* buf) + { functions->GetByteArrayRegion(this, array, start, len, buf); } + void GetCharArrayRegion(jcharArray array, jsize start, jsize len, + jchar* buf) + { functions->GetCharArrayRegion(this, array, start, len, buf); } + void GetShortArrayRegion(jshortArray array, jsize start, jsize len, + jshort* buf) + { functions->GetShortArrayRegion(this, array, start, len, buf); } + void GetIntArrayRegion(jintArray array, jsize start, jsize len, + jint* buf) + { functions->GetIntArrayRegion(this, array, start, len, buf); } + void GetLongArrayRegion(jlongArray array, jsize start, jsize len, + jlong* buf) + { functions->GetLongArrayRegion(this, array, start, len, buf); } + void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + jfloat* buf) + { functions->GetFloatArrayRegion(this, array, start, len, buf); } + void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + jdouble* buf) + { functions->GetDoubleArrayRegion(this, array, start, len, buf); } + + void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + const jboolean* buf) + { functions->SetBooleanArrayRegion(this, array, start, len, buf); } + void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, + const jbyte* buf) + { functions->SetByteArrayRegion(this, array, start, len, buf); } + void SetCharArrayRegion(jcharArray array, jsize start, jsize len, + const jchar* buf) + { functions->SetCharArrayRegion(this, array, start, len, buf); } + void SetShortArrayRegion(jshortArray array, jsize start, jsize len, + const jshort* buf) + { functions->SetShortArrayRegion(this, array, start, len, buf); } + void SetIntArrayRegion(jintArray array, jsize start, jsize len, + const jint* buf) + { functions->SetIntArrayRegion(this, array, start, len, buf); } + void SetLongArrayRegion(jlongArray array, jsize start, jsize len, + const jlong* buf) + { functions->SetLongArrayRegion(this, array, start, len, buf); } + void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + const jfloat* buf) + { functions->SetFloatArrayRegion(this, array, start, len, buf); } + void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + const jdouble* buf) + { functions->SetDoubleArrayRegion(this, array, start, len, buf); } + + jint RegisterNatives(jclass clazz, const JNINativeMethod* methods, + jint nMethods) + { return functions->RegisterNatives(this, clazz, methods, nMethods); } + + jint UnregisterNatives(jclass clazz) + { return functions->UnregisterNatives(this, clazz); } + + jint MonitorEnter(jobject obj) + { return functions->MonitorEnter(this, obj); } + + jint MonitorExit(jobject obj) + { return functions->MonitorExit(this, obj); } + + jint GetJavaVM(JavaVM** vm) + { return functions->GetJavaVM(this, vm); } + + void GetStringRegion(jstring str, jsize start, jsize len, jchar* buf) + { functions->GetStringRegion(this, str, start, len, buf); } + + void GetStringUTFRegion(jstring str, jsize start, jsize len, char* buf) + { return functions->GetStringUTFRegion(this, str, start, len, buf); } + + void* GetPrimitiveArrayCritical(jarray array, jboolean* isCopy) + { return functions->GetPrimitiveArrayCritical(this, array, isCopy); } + + void ReleasePrimitiveArrayCritical(jarray array, void* carray, jint mode) + { functions->ReleasePrimitiveArrayCritical(this, array, carray, mode); } + + const jchar* GetStringCritical(jstring string, jboolean* isCopy) + { return functions->GetStringCritical(this, string, isCopy); } + + void ReleaseStringCritical(jstring string, const jchar* carray) + { functions->ReleaseStringCritical(this, string, carray); } + + jweak NewWeakGlobalRef(jobject obj) + { return functions->NewWeakGlobalRef(this, obj); } + + void DeleteWeakGlobalRef(jweak obj) + { functions->DeleteWeakGlobalRef(this, obj); } + + jboolean ExceptionCheck() + { return functions->ExceptionCheck(this); } + + jobject NewDirectByteBuffer(void* address, jlong capacity) + { return functions->NewDirectByteBuffer(this, address, capacity); } + + void* GetDirectBufferAddress(jobject buf) + { return functions->GetDirectBufferAddress(this, buf); } + + jlong GetDirectBufferCapacity(jobject buf) + { return functions->GetDirectBufferCapacity(this, buf); } + + /* added in JNI 1.6 */ + jobjectRefType GetObjectRefType(jobject obj) + { return functions->GetObjectRefType(this, obj); } +#endif /*__cplusplus*/ +}; + + +/* + * JNI invocation interface. + */ +struct JNIInvokeInterface { + void* reserved0; + void* reserved1; + void* reserved2; + + jint (*DestroyJavaVM)(JavaVM*); + jint (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*); + jint (*DetachCurrentThread)(JavaVM*); + jint (*GetEnv)(JavaVM*, void**, jint); + jint (*AttachCurrentThreadAsDaemon)(JavaVM*, JNIEnv**, void*); +}; + +/* + * C++ version. + */ +struct _JavaVM { + const struct JNIInvokeInterface* functions; + +#if defined(__cplusplus) + jint DestroyJavaVM() + { return functions->DestroyJavaVM(this); } + jint AttachCurrentThread(JNIEnv** p_env, void* thr_args) + { return functions->AttachCurrentThread(this, p_env, thr_args); } + jint DetachCurrentThread() + { return functions->DetachCurrentThread(this); } + jint GetEnv(void** env, jint version) + { return functions->GetEnv(this, env, version); } + jint AttachCurrentThreadAsDaemon(JNIEnv** p_env, void* thr_args) + { return functions->AttachCurrentThreadAsDaemon(this, p_env, thr_args); } +#endif /*__cplusplus*/ +}; + +struct JavaVMAttachArgs { + jint version; /* must be >= JNI_VERSION_1_2 */ + const char* name; /* NULL or name of thread as modified UTF-8 str */ + jobject group; /* global ref of a ThreadGroup object, or NULL */ +}; +typedef struct JavaVMAttachArgs JavaVMAttachArgs; + +/* + * JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no + * longer supported.) + */ +typedef struct JavaVMOption { + const char* optionString; + void* extraInfo; +} JavaVMOption; + +typedef struct JavaVMInitArgs { + jint version; /* use JNI_VERSION_1_2 or later */ + + jint nOptions; + JavaVMOption* options; + jboolean ignoreUnrecognized; +} JavaVMInitArgs; + +#ifdef __cplusplus +extern "C" { +#endif +/* + * VM initialization functions. + * + * Note these are the only symbols exported for JNI by the VM. + */ +jint JNI_GetDefaultJavaVMInitArgs(void*); +jint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*); +jint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*); + +#define JNIIMPORT +#define JNIEXPORT __attribute__ ((visibility ("default"))) +#define JNICALL + +/* + * Prototypes for functions exported by loadable shared libs. These are + * called by JNI, not provided by JNI. + */ +JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved); +JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved); + +#ifdef __cplusplus +} +#endif + + +/* + * Manifest constants. + */ +#define JNI_FALSE 0 +#define JNI_TRUE 1 + +#define JNI_VERSION_1_1 0x00010001 +#define JNI_VERSION_1_2 0x00010002 +#define JNI_VERSION_1_4 0x00010004 +#define JNI_VERSION_1_6 0x00010006 + +#define JNI_OK (0) /* no error */ +#define JNI_ERR (-1) /* generic error */ +#define JNI_EDETACHED (-2) /* thread detached from the VM */ +#define JNI_EVERSION (-3) /* JNI version error */ + +#define JNI_COMMIT 1 /* copy content, do not free buffer */ +#define JNI_ABORT 2 /* free buffer w/o copying back */ + +#endif /* JNI_H_ */ diff --git a/android/library/src/main/jni/libs/nativehelper/include/nativehelper/toStringArray.h b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/toStringArray.h new file mode 100644 index 0000000..9dc7a16 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/include/nativehelper/toStringArray.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TO_STRING_ARRAY_H_included +#define TO_STRING_ARRAY_H_included + +#include "jni.h" +#include "ScopedLocalRef.h" + +#include +#include + +jobjectArray newStringArray(JNIEnv* env, size_t count); + +template +jobjectArray toStringArray(JNIEnv* env, Counter* counter, Getter* getter) { + size_t count = (*counter)(); + jobjectArray result = newStringArray(env, count); + if (result == NULL) { + return NULL; + } + for (size_t i = 0; i < count; ++i) { + ScopedLocalRef s(env, env->NewStringUTF((*getter)(i))); + if (env->ExceptionCheck()) { + return NULL; + } + env->SetObjectArrayElement(result, i, s.get()); + if (env->ExceptionCheck()) { + return NULL; + } + } + return result; +} + +struct VectorCounter { + const std::vector& strings; + VectorCounter(const std::vector& strings) : strings(strings) {} + size_t operator()() { + return strings.size(); + } +}; +struct VectorGetter { + const std::vector& strings; + VectorGetter(const std::vector& strings) : strings(strings) {} + const char* operator()(size_t i) { + return strings[i].c_str(); + } +}; + +inline jobjectArray toStringArray(JNIEnv* env, const std::vector& strings) { + VectorCounter counter(strings); + VectorGetter getter(strings); + return toStringArray(env, &counter, &getter); +} + +JNIEXPORT jobjectArray toStringArray(JNIEnv* env, const char* const* strings); + +#endif // TO_STRING_ARRAY_H_included diff --git a/android/library/src/main/jni/libs/nativehelper/tests/Android.mk b/android/library/src/main/jni/libs/nativehelper/tests/Android.mk new file mode 100644 index 0000000..c357b24 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/tests/Android.mk @@ -0,0 +1,35 @@ +# Build the unit tests. +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +# Target unit test. + +include $(CLEAR_VARS) +LOCAL_MODULE := JniInvocation_test +LOCAL_CLANG := true +LOCAL_SRC_FILES := JniInvocation_test.cpp +LOCAL_SHARED_LIBRARIES := \ + libnativehelper + +include external/libcxx/libcxx.mk + +LOCAL_MULTILIB := both +LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32 +LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64 +include $(BUILD_NATIVE_TEST) + +# Host unit test. + +include $(CLEAR_VARS) +LOCAL_MODULE := JniInvocation_test +LOCAL_CLANG := true +LOCAL_SRC_FILES := JniInvocation_test.cpp +LOCAL_SHARED_LIBRARIES := \ + libnativehelper + +include external/libcxx/libcxx.mk + +LOCAL_MULTILIB := both +LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32 +LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64 +include $(BUILD_HOST_NATIVE_TEST) diff --git a/android/library/src/main/jni/libs/nativehelper/tests/JniInvocation_test.cpp b/android/library/src/main/jni/libs/nativehelper/tests/JniInvocation_test.cpp new file mode 100644 index 0000000..6eb0267 --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/tests/JniInvocation_test.cpp @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "NativeBridge_test" + +#include +#include + + +#include "string.h" + +#if defined(HAVE_ANDROID_OS) && defined(__BIONIC__) +#define HAVE_TEST_STUFF 1 +#else +#undef HAVE_TEST_STUFF +#endif + +#ifdef HAVE_TEST_STUFF + +// Ability to have fake local system properties. +#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ +#include + +extern void *__system_property_area__; + +struct LocalPropertyTestState { + LocalPropertyTestState() : valid(false) { + const char* ANDROID_DATA = getenv("ANDROID_DATA"); + char dir_template[PATH_MAX]; + snprintf(dir_template, sizeof(dir_template), "%s/local/tmp/prop-XXXXXX", ANDROID_DATA); + char* dirname = mkdtemp(dir_template); + if (!dirname) { + fprintf(stderr, "making temp file for test state failed (is %s writable?): %s", + dir_template, strerror(errno)); + return; + } + + old_pa = __system_property_area__; + __system_property_area__ = NULL; + + pa_dirname = dirname; + pa_filename = pa_dirname + "/__properties__"; + + __system_property_set_filename(pa_filename.c_str()); + __system_property_area_init(); + valid = true; + } + + ~LocalPropertyTestState() { + if (!valid) { + return; + } + + __system_property_area__ = old_pa; + + __system_property_set_filename(PROP_FILENAME); + unlink(pa_filename.c_str()); + rmdir(pa_dirname.c_str()); + } +public: + bool valid; +private: + std::string pa_dirname; + std::string pa_filename; + void *old_pa; +}; +#endif + +namespace android { + +class JNIInvocationTest : public testing::Test { +}; + +#ifdef HAVE_TEST_STUFF +static const char* kDebuggableSystemProperty = "ro.debuggable"; +static const char* kIsDebuggableValue = "1"; +static const char* kIsNotDebuggableValue = "0"; + +static const char* kLibrarySystemProperty = "persist.sys.dalvik.vm.lib.2"; +static const char* kTestNonNull = "libartd.so"; +static const char* kTestNonNull2 = "libartd2.so"; +static const char* kExpected = "libart.so"; +#endif + +TEST_F(JNIInvocationTest, Debuggable) { +#ifdef HAVE_TEST_STUFF + LocalPropertyTestState pa; + ASSERT_TRUE(pa.valid); + ASSERT_EQ(0, __system_property_add(kDebuggableSystemProperty, 13, kIsDebuggableValue, 1)); + ASSERT_EQ(0, __system_property_add(kLibrarySystemProperty, 27, kTestNonNull2, 11)); + + const char* result = JniInvocation::GetLibrary(NULL); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kTestNonNull2) == 0); + EXPECT_FALSE(strcmp(result, kExpected) == 0); + } + + result = JniInvocation::GetLibrary(kTestNonNull); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kTestNonNull) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull2) == 0); + } +#endif +} + +TEST_F(JNIInvocationTest, NonDebuggable) { +#ifdef HAVE_TEST_STUFF + LocalPropertyTestState pa; + ASSERT_TRUE(pa.valid); + ASSERT_EQ(0, __system_property_add(kDebuggableSystemProperty, 13, kIsNotDebuggableValue, 1)); + + const char* result = JniInvocation::GetLibrary(NULL); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kExpected) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull2) == 0); + } + + result = JniInvocation::GetLibrary(kTestNonNull); + EXPECT_FALSE(result == NULL); + if (result != NULL) { + EXPECT_TRUE(strcmp(result, kExpected) == 0); + EXPECT_FALSE(strcmp(result, kTestNonNull) == 0); + } +#endif +} + +} // namespace android diff --git a/android/library/src/main/jni/libs/nativehelper/toStringArray.cpp b/android/library/src/main/jni/libs/nativehelper/toStringArray.cpp new file mode 100644 index 0000000..f2fa53c --- /dev/null +++ b/android/library/src/main/jni/libs/nativehelper/toStringArray.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "JniConstants.h" +#include "toStringArray.h" + +jobjectArray newStringArray(JNIEnv* env, size_t count) { + return env->NewObjectArray(count, JniConstants::stringClass, NULL); +} + +struct ArrayCounter { + const char* const* strings; + ArrayCounter(const char* const* strings) : strings(strings) {} + size_t operator()() { + size_t count = 0; + while (strings[count] != NULL) { + ++count; + } + return count; + } +}; + +struct ArrayGetter { + const char* const* strings; + ArrayGetter(const char* const* strings) : strings(strings) {} + const char* operator()(size_t i) { + return strings[i]; + } +}; + +jobjectArray toStringArray(JNIEnv* env, const char* const* strings) { + ArrayCounter counter(strings); + ArrayGetter getter(strings); + return toStringArray(env, &counter, &getter); +} diff --git a/android/library/src/main/jni/list_ports_linux.cc b/android/library/src/main/jni/list_ports_linux.cc new file mode 120000 index 0000000..1ae477d --- /dev/null +++ b/android/library/src/main/jni/list_ports_linux.cc @@ -0,0 +1 @@ +../../../../../src/impl/list_ports/list_ports_linux.cc \ No newline at end of file diff --git a/android/library/src/main/jni/serial.cc b/android/library/src/main/jni/serial.cc new file mode 120000 index 0000000..d3a5558 --- /dev/null +++ b/android/library/src/main/jni/serial.cc @@ -0,0 +1 @@ +../../../../../src/serial.cc \ No newline at end of file diff --git a/android/library/src/main/jni/serial_jni.cc b/android/library/src/main/jni/serial_jni.cc new file mode 100644 index 0000000..37d93a4 --- /dev/null +++ b/android/library/src/main/jni/serial_jni.cc @@ -0,0 +1,466 @@ +#include +#include "jni_utility.h" +#include + +using namespace std; +using namespace serial; + +#define MAKE_TIMEOUT(env,in,out) jint* _array = (env)->GetIntArrayElements((in), NULL); \ + if (_array[0] == -1) {\ + _array[0] = Timeout::max();\ + }\ + Timeout out(_array[0], _array[1], _array[2], _array[3], _array[4]);\ + env->ReleaseIntArrayElements((in), _array, JNI_ABORT) + + +#define _BEGIN_TRY try { +#define _CATCH(cpp_ex) } catch (cpp_ex& _ex) { +#define _CATCH_AND_THROW(env, cpp_ex, java_ex) } catch (cpp_ex& _ex) { \ + LOGE("%s", _ex.what());\ + (env)->ThrowNew(java_ex, _ex.what()); +#define _END_TRY } + +static jclass gSerialExceptionClass = 0; +static jclass gSerialIOExceptionClass = 0; +static jclass gIllegalArgumentException = 0; + +static jobjectArray native_listPorts(JNIEnv *env, jobject) +{ + std::vector ports = list_ports(); + jobjectArray portDescs = createStringArray(env, ports.size()); + int i = 0; + for(std::vector::iterator it = ports.begin(); it < ports.end(); ++it, ++i) { + std::string desc; + desc += it->port; + desc.push_back('\t'); + desc += it->description; + desc.push_back('\t'); + desc += it->hardware_id; + env->SetObjectArrayElement(portDescs, i, stdStringToJstring(desc)); + } + + return portDescs; +} + +static jlong native_create(JNIEnv *env, jobject, jstring jport, jint baudrate, jintArray jtimeout, jint bytesize, jint parity, jint stopbits, jint flowcontrol) +{ + std::string port = jstringToStdString(jport); + MAKE_TIMEOUT(env, jtimeout, timeout); + + Serial * com = NULL; + _BEGIN_TRY + Serial * com = new Serial(port, (uint32_t)baudrate, timeout, + bytesize_t(bytesize), parity_t(parity), stopbits_t(stopbits), flowcontrol_t(flowcontrol)); + LOGD("Native serial port object %p.", com); + return (jlong)com; + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return (jlong)com; +} + +static void native_destory(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + if (com) + delete com; +} + +static void native_open(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->open(); + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _END_TRY +} + +static jboolean native_isOpen(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return com->isOpen() ? JNI_TRUE : JNI_FALSE; +} + +static void native_close(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->close(); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY +} + +static jint native_available(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return (jint)com->available(); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY + return -1; +} + +static jboolean native_waitReadable(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->waitReadable() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY + return JNI_FALSE; +} + +static void native_waitByteTimes(JNIEnv *env, jobject, jlong ptr, jint count) +{ + Serial * com = (Serial *)ptr; + com->waitByteTimes(count); +} + +static jint native_read(JNIEnv *env, jobject, jlong ptr, jbyteArray jbuffer, jint offset, jint size) +{ + LOGI("native_read(0x%08llx,%p,%d,%d)", ptr, jbuffer, offset, size); + Serial * com = (Serial *)ptr; + jbyte* jarray = env->GetByteArrayElements(jbuffer, NULL); + if (jarray) { + uint8_t * buffer = (uint8_t *)(jarray + offset); + LOGI("buffer = %p, size=%d", buffer, size); + _BEGIN_TRY + int bytesRead = com->read(buffer, (size_t)size); + LOGI("bytes read = %d", bytesRead); + env->ReleaseByteArrayElements(jbuffer, jarray, 0); + return (jint)bytesRead; + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + env->ReleaseByteArrayElements(jbuffer, jarray, JNI_ABORT); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + env->ReleaseByteArrayElements(jbuffer, jarray, JNI_ABORT); + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + env->ReleaseByteArrayElements(jbuffer, jarray, JNI_ABORT); + _END_TRY + return -1; + } + return -1; // Failed +} + +static jstring native_readline(JNIEnv *env, jobject, jlong ptr, jint size, jstring jeol) +{ + Serial * com = (Serial *)ptr; + std::string eol = jstringToStdString(jeol); + _BEGIN_TRY + std::string line = com->readline(size, eol); + return stdStringToJstring(line); + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY + return NULL; +} + +static jobjectArray native_readlines(JNIEnv *env, jobject, jlong ptr, jint size, jstring jeol) +{ + Serial * com = (Serial *)ptr; + std::string eol = jstringToStdString(jeol); + jobjectArray jlines = NULL; + _BEGIN_TRY + vector lines = com->readlines(size, eol); + jlines = createStringArray(env, lines.size()); + int i = 0; + for(vector::iterator it = lines.begin(); it < lines.end(); ++it, ++i) { + env->SetObjectArrayElement(jlines, i, stdStringToJstring(*it)); + } + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY + return jlines; +} + +static jint native_write(JNIEnv *env, jobject, jlong ptr, jbyteArray jdata, jint size) +{ + LOGI("native_write(0x%08llx,%p,%d)", ptr, jdata, size); + Serial * com = (Serial *)ptr; + jbyte* jarray = env->GetByteArrayElements(jdata, NULL); + if (jarray) { + uint8_t * data = (uint8_t *)jarray; + LOGI("data = %p, size=%d", data, size); + _BEGIN_TRY + int bytesWritten = com->write(data, (size_t)size); + LOGI("bytes written = %d", bytesWritten); + env->ReleaseByteArrayElements(jdata, jarray, JNI_ABORT); + return (jint)bytesWritten; + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + env->ReleaseByteArrayElements(jdata, jarray, JNI_ABORT); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + env->ReleaseByteArrayElements(jdata, jarray, JNI_ABORT); + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + env->ReleaseByteArrayElements(jdata, jarray, JNI_ABORT); + _END_TRY + } + return -1; +} + +static void native_setPort(JNIEnv *env, jobject, jlong ptr, jstring jport) +{ + Serial * com = (Serial *)ptr; + std::string port = jstringToStdString(jport); + com->setPort(port); +} + +static jstring native_getPort(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + std::string port = com->getPort(); + return stdStringToJstring(port); +} + +static void native_setBaudrate(JNIEnv *env, jobject, jlong ptr, jint baudrate) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setBaudrate((uint32_t)baudrate); + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static jint native_getBaudrate(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return (jint)com->getBaudrate(); +} + +static void native_setTimeout(JNIEnv *env, jobject, jlong ptr, jintArray jtimeout) +{ + Serial * com = (Serial *)ptr; + MAKE_TIMEOUT(env, jtimeout, timeout); + com->setTimeout(timeout); +} + +static void native_setBytesize(JNIEnv *env, jobject, jlong ptr, jint bytesize) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setBytesize(bytesize_t(bytesize)); + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static jint native_getBytesize(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return (jint)com->getBytesize(); +} + +static void native_setParity(JNIEnv *env, jobject, jlong ptr, jint parity) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setParity(parity_t(parity)); + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static jint native_getParity(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return (jint)com->getParity(); +} + +static void native_setStopbits(JNIEnv *env, jobject, jlong ptr, jint stopbits) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setStopbits(stopbits_t(stopbits)); + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _END_TRY +} + +static jint native_getStopbits(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return (jint)com->getStopbits(); +} + +static void native_setFlowcontrol(JNIEnv *env, jobject, jlong ptr, jint flowcontrol) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setFlowcontrol(flowcontrol_t(flowcontrol)); + _CATCH_AND_THROW(env, invalid_argument, gIllegalArgumentException) + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static jint native_getFlowcontrol(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + return (jint)com->getFlowcontrol(); +} + +static void native_flush(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + com->flush(); +} + +static void native_flushInput(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + com->flushInput(); +} + +static void native_flushOutput(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + com->flushOutput(); +} + +static void native_sendBreak(JNIEnv *env, jobject, jlong ptr, jint duration) +{ + Serial * com = (Serial *)ptr; + com->sendBreak((int)duration); +} + +static void native_setBreak(JNIEnv *env, jobject, jlong ptr, jboolean level) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setBreak((bool)level); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static void native_setRTS(JNIEnv *env, jobject, jlong ptr, jboolean level) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setRTS((bool)level); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static void native_setDTR(JNIEnv *env, jobject, jlong ptr, jboolean level) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + com->setDTR((bool)level); + _CATCH_AND_THROW(env, IOException, gSerialIOExceptionClass) + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY +} + +static jboolean native_waitForChange(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->waitForChange() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return JNI_FALSE; +} + +static jboolean native_getCTS(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->getCTS() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return JNI_FALSE; +} + +static jboolean native_getDSR(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->getDSR() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return JNI_FALSE; +} + +static jboolean native_getRI(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->getRI() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return JNI_FALSE; +} + +static jboolean native_getCD(JNIEnv *env, jobject, jlong ptr) +{ + Serial * com = (Serial *)ptr; + _BEGIN_TRY + return com->getCD() ? JNI_TRUE : JNI_FALSE; + _CATCH_AND_THROW(env, SerialException, gSerialExceptionClass) + _END_TRY + return JNI_FALSE; +} + + +#ifdef __cplusplus +extern "C" { +#endif + +static JNINativeMethod gSerialMethods[] = { + { "native_listPorts", "()[Ljava/lang/String;", (void*) native_listPorts }, + { "native_create", "(Ljava/lang/String;I[IIIII)J", (void*) native_create }, + { "native_destory", "(J)V", (void*) native_destory }, + { "native_open", "(J)V", (void*) native_open }, + { "native_isOpen", "(J)Z", (void*) native_isOpen }, + { "native_close", "(J)V", (void*) native_close }, + { "native_available", "(J)I", (void*) native_available }, + { "native_waitReadable", "(J)Z", (void*) native_waitReadable }, + { "native_waitByteTimes", "(JI)V", (void*) native_waitByteTimes }, + { "native_read", "(J[BII)I", (void*) native_read }, + { "native_readline", "(JILjava/lang/String;)Ljava/lang/String;", (void*) native_readline }, + { "native_readlines", "(JILjava/lang/String;)[Ljava/lang/String;", (void*) native_readlines }, + { "native_write", "(J[BI)I", (void*) native_write }, + { "native_setPort", "(JLjava/lang/String;)V", (void*) native_setPort }, + { "native_getPort", "(J)Ljava/lang/String;", (void*) native_getPort }, + { "native_setBaudrate", "(JI)V", (void*) native_setBaudrate }, + { "native_getBaudrate", "(J)I", (void*) native_getBaudrate }, + { "native_setTimeout", "(J[I)V", (void*) native_setTimeout }, + { "native_setBytesize", "(JI)V", (void*) native_setBytesize }, + { "native_getBytesize", "(J)I", (void*) native_getBytesize }, + { "native_setParity", "(JI)V", (void*) native_setParity }, + { "native_getParity", "(J)I", (void*) native_getParity }, + { "native_setStopbits", "(JI)V", (void*) native_setStopbits }, + { "native_getStopbits", "(J)I", (void*) native_getStopbits }, + { "native_setFlowcontrol", "(JI)V", (void*) native_setFlowcontrol }, + { "native_getFlowcontrol", "(J)I", (void*) native_getFlowcontrol }, + { "native_flush", "(J)V", (void*) native_flush }, + { "native_flushInput", "(J)V", (void*) native_flushInput }, + { "native_flushOutput", "(J)V", (void*) native_flushOutput }, + { "native_sendBreak", "(JI)V", (void*) native_sendBreak }, + { "native_setBreak", "(JZ)V", (void*) native_setBreak }, + { "native_setRTS", "(JZ)V", (void*) native_setRTS }, + { "native_setDTR", "(JZ)V", (void*) native_setDTR }, + { "native_waitForChange", "(J)Z", (void*) native_waitForChange }, + { "native_getCTS", "(J)Z", (void*) native_getCTS }, + { "native_getDSR", "(J)Z", (void*) native_getDSR }, + { "native_getRI", "(J)Z", (void*) native_getRI }, + { "native_getCD", "(J)Z", (void*) native_getCD }, +}; + +int registerSerial(JNIEnv* env) +{ + gSerialExceptionClass = findClass("serial/SerialException", FIND_CLASS_RETURN_GLOBAL_REF); + gSerialIOExceptionClass = findClass("serial/SerialIOException", FIND_CLASS_RETURN_GLOBAL_REF); + gIllegalArgumentException = findClass("java/lang/IllegalArgumentException", FIND_CLASS_RETURN_GLOBAL_REF); + return jniRegisterNativeMethods(env, "serial/Serial", gSerialMethods, NELEM(gSerialMethods)); +} +#ifdef __cplusplus +} +#endif diff --git a/android/library/src/main/jni/serial_unix.cc b/android/library/src/main/jni/serial_unix.cc new file mode 120000 index 0000000..d09f7b2 --- /dev/null +++ b/android/library/src/main/jni/serial_unix.cc @@ -0,0 +1 @@ +../../../../../src/impl/unix.cc \ No newline at end of file diff --git a/android/library/src/main/jniLibs/armeabi-v7a/gdb.setup b/android/library/src/main/jniLibs/armeabi-v7a/gdb.setup new file mode 100644 index 0000000..f8072f7 --- /dev/null +++ b/android/library/src/main/jniLibs/armeabi-v7a/gdb.setup @@ -0,0 +1,3 @@ +set solib-search-path /mnt/workspace/serial/android/library/src/main/obj/local/armeabi-v7a +source /mnt/android/android-ndk-r10c/prebuilt/common/gdb/common.setup +directory /mnt/android/android-ndk-r10c/platforms/android-16/arch-arm/usr/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++ /mnt/workspace/serial/android/library/src/main/jni/libs/nativehelper/include/nativehelper /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/include/backward /mnt/workspace/serial/android/library/src/main/jni/include diff --git a/android/library/src/main/jniLibs/armeabi-v7a/gdbserver b/android/library/src/main/jniLibs/armeabi-v7a/gdbserver new file mode 100755 index 0000000000000000000000000000000000000000..d1d109698fce93324fc990f519436926404dc548 GIT binary patch literal 393604 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
WpAY{ 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 z%0DChuGpG#6Y+`@55JkX5cS$Iw{#8ir=BI}e2r)5!^D5pe^&f_p0%f~b&B$=E0`EuG+hv_cTfBRWdccnc%95Wfl{bsBrp7sM3SM+i=r79;&2O;n3q8af zXy1je>$}RIuF~=CVVxL zY{)v*zqoye~*F=O=rMnH2Lpym?+0 z*bMX*RhH)Y4yU&`Kh8YtdUNlH)%#jQhPfw;FNOi;b?TRm_)h9Oo;m%4)YtAFmPg=s zQOyg_@_p@e?f@9?(N^Lpxpeaj-dgRy_@4!yJ_tQ8);tFtX)IfiNu4U0RJah}#v*8- zgR(`l325M#lp+6_0SySABNI0lgfpT8;f?Cp@0?foHn@NN55Xn(#^QeGqQcjBmyTvR z`euiDRCB0n0UPA?e4@9wAHK4j^bYB#rf2Z|F6?7iV=%|&_3atHA!o!h`qppOt)C~a zd~60~wz~Ru>yY3wnS8RZ4e~ju8O1%$GQ(rEPI&Xbv2U*Wu5ZE}eXHFAzhoXGZXM4J@Vix;xo4X= z>xZmWc+Rb7ACpC<#l(Jq{|Nt$1c%T{a0zijjxd#wC%i+t2L9^^+S3SSn76WSVHtc- z`xp^;A-Wi|54;%q7M{1l1Em*W>qj{AdjejKUwCw+!q*Yf4?vRv-#eLaTZwZi(-p1yeDCKs z!}ri3oBQWrZwJM9$~E<0Z!t1IcW4@^2VLs;w<=;r@u^^ z`0n8MH4rYmO10lN_@jUbo*#6m)KK8T1&37WX@|3g6^iJYd+hfu@c^ZrpHaNWx5CIKlB1M9?Rx3Ov(6;F=wIm{u3GG~zE= z!%sHxtt}5fVJ|1b__V@XGK|;p^uHFqQI|nRcNs@`h8e$s-tw1$TbBN3ENrL$#GN=i ztA6p1VcrY8H$KFEDLUCz58}TS8=&okPM#C+gPDYBPa;DT*RJOs+=-4Zb^&qDI!`aV z>-+2%ffS1giwGG)mXIT?BIF5aLKmT%AfE7UGEs*w6UE^N?N$7sdfxlr%0zXPH5GV? zz86rI{T zd^7d^HJNAy-}|Sdrxjm>XQYne8H<5|c*etm1++d79xl6*fM>MBGvZY|qZ&6P6V0M* zQ!aetddf&pPc^R?nRKK~q&nVBCaR_0Kt>UNkW6$2bR(H)1e#wC%{%zG^kkxY3}4aQ zyG!5B;V{}Zw$}zm_uq-r7yo-43Ntla$*(e9k1&74LBoE=6(bJ(3_inP#S&Zp?_*S(n z^b=%4$vc58^a$^}co%;j;92^C+V6!e2VLyq2as#fzpj@)mgfV=JGJmN=Lz^7aqsXx z?a@GCvY z9G8?`;q8@cdDdQ5jpMDCwy{rX<=7K=6Muo=p!NZ;?&a)1Y4ol+@Q1ux>{nn<5=It| zzLSOyD9=9G+n4zDe|YDVwMR9Ib+zh350(D``OMh~_R-(Qrp?N*=a<@oz zTI`8iDD(ZiU!Z!B2^`*SD_fL3Uk`OPJM<}yJw^=MP(Kg$?9ti;by=Q1Kxyvgn`}>8 zjQ{LpJ$t-tk0)gh8I?V{LmKtxU;KJT5wEuVlJ<)hzD2y&@~J^+5PMen!Nvxv{GW_* z=4sAkJsz?ShB+U_7^W^nALGlQd$k77q93o?o8RTmF!nUYuTorlI_ynV%{zfS@*r|( zAbVEZ)a-;mgnXNt#lGwrbv&DzP}AYP`Mqi@`&#QrZvzV>bN-ciMShXQ|I^GXmw^k5 z$hT->mCOm=Fn*Kh)eioo*=j)Ykm&6#wk~A zNkglGVT=DRdm7D4wf-2)ChfcJ%O5cP^!DW?2L?Eco};+6$J(d=MKSc1jUL`;U%ngt zMD@P>qv)eN*%cdB##!rsjrlP7#rtyjsD>{UYQWnzzO@qOQf@rSdC@;8{p#{dq}5*i z)MW4Y=49`Q7tv;8@6e}bOO%J7(N^JWgfZ9+jtZ_DD8G8YDt*)( z_%rHJJ4X0l%=~me?W^9en#LSBwQ3Fw@bog~zeVW9EZ5t&PcsK@qm21+;s!jt6MtXq zFz4OBrEodz5sdn1k6`%Lvj_KOh|8{FkLnR@eE6Twe+Qv*5Axo2{3bzP7Vn)r4{Sm= z`U~`>=+WALhOV?9dv>1J^Dny7x_l3GH!|TF*tUCWL_#+T`Oe3@<`=_LbdjK#yGBb`ZHpI>HN zxacN}YkQ2PLaoTk*bTQD*IuzQJUOEZh#0Ritf$xlUyuP<}|GdO_27Q~E=q-xgraGS9<89@qJ?f|I7q$0y8|~5goQbUE1UGBS zo!@6q`95ro@3W??_`d3W?x=cM3vt%Xi`P6;N8g$#M>ZSmcWtrKMvuQcKV?lh|FAbk zW8e+)D=pp$RSauh!yeR}1;AE(uWb4MsP(erwM{U%j(Sy(V7-dxNc=>@w@0PEh`##r zQi8KKl3Pxo?#BFTGgg-MIsEvqKJfxzGanw?O1#Fl4g8lZul1nTfcun3ai;%n;V;h^ z{d?hd^%Xc^|K1d(Y}MPs`nrX(Br9i*;y-tjU;Jl~{~q|yGT?teJOr2sH)p_q5>@=C zns#IGpq;*MJ_G-GfHJl-uZ!;l>vhQkBQ4M~bglAb8#*4oW4{iLIL{VF^L!O`I*fBj z`K%lAA7K9Y9`OmrJw)5O`PS<6mM=v1#a?N6e$LwqdW>g{-4E!y#_R{Yx4@4Q==Im# zja?Bsv0a1(Jg?n`4bo3JPE*Ea}#>|tC=9aD_zUI;!^0Gw~&DF(LmSx{)e9gGf+yK6~ zDQlM{+RjS95S89m<24grt9=2+z}sUWO`u1)-IMPYJ&Iw+7jb1IqxToDxmU(;s zyeBmOm->-$gqNbr_Hptg$bu4mOF_&!(}wz_$) z<9`qFS;D4sLsn!YWL<&~{x{;Imiq!@yG8cvN55;nw-T~byM(n(wsIc*iW$78OEAfGFC2fdyf~#Xnp4vK1D1Q6kq!2O1A89^7735fM3byhG9HhOz+<78VdV|Z zuGK;_oD+U1!rs2hf>xq6qMJ;nY|iRnx6M8{BsiyZ2LF-FlS4=6=e+mEh1YmzR6~@l zv|7{5qb>8Q+TvhCaIE$y&(ZC%gZvv(NlAj))uu*W~ z>>}qdys~X4&pDlxspCBSl_>qE{q*c7nDXD~XYEK^wO{YVyNX>-p7Rap^l6*YU*e~a zOj-E=ZFnfc98@3=?`7@B>-`nIQ}^AxC&07)n?qJ3>+4nM5jXL?i=eZt;vF;L-yhil z|Bj>Ib-)GoahSV{4r9ZaiKbJXOwpT5`0mHsv0_=@bkmV5!+xU3``XGUnM5&RgZIQi#m zjFZr5Qg>AJRhH8B8izBian>!sNq103fYIlaj&q?ktf%G6LU-!Q7bbR3O&j8`upY-( zJkL5)M0|lW!w)TnXVp2{&t=Yq|EX_zV3?!Li_vL>rnA=N?&&F3!aF;Xf;Xo_36ls1DI-i-(p_ub5$~|$FO*5M+jhZ#%c=H=q0cygB2Ncqxzn*o|6~*N@8=4#uA=S@_Equ4ksW zg(c&cp$o_sN5__w=tq4dhA(a5I(JH|UoX?95dSZk|Jfzj4jP-;;6VO`QBG(u9CKf& zrF{{#7aFxWI|Cet(Rm1l!(nilbomp&ANj1bd|0)@H(MElR`{mQNe6t>i5_4afn8U+11LTh1-Cvl9_lx)N-@lgMwhpZ*QYuCoqX0NFNq_QSWr z13kaT5ld(4E-PrhYM?%I$0+@=liNy>|;BG5E z3FN;*cOGjF4dtFI+igpW8iUrg+!wQid+uSpefKkefM@bCqBU_S}~1pkfuk0e=9y=g>PZelsOxCS;;$xDW9X`i?y+3<1NRN zkLWl21KC4+s8-CR6JNs@xshc&`6yp9eo4TiR{ZqozIXW|5sX90=gaoAWkvjTfbV^k z24qIo90?N`1Sjf{ zLF%9($qMrQAX!j-w;6x&8=J9w5g1A58JuO=#vCYFO6Q6+*J$r&6m1A6`i6uvl2fEd zYtPY#I5sTIw~xUe2Iv=lWsELvo&U_3){DNBN3=7FyV!(3$~&67ZdLA~GOSk$(a8z= zdaYz=?76Xdqi*?KP}@!2CLi-I^|s?vMs>@d!8E_V8rs_q+`{ox-m<GQ9Uj1o`%A=YB`*YU>IF{1Mcr#IT>Lh0 z(%hl`h)?Jqla7BumbnSJg#1dY{Izjt4x3oz2|L^wL%tw=GihZTr1VM~ls%6$(`bj` z_uz`=YxqsHjlQ*!Uih#M*;HlfZ0PT9&>8L{+w#th$ViL9D#F5z=pMm`X-V=j_S&Gm$ArUWM`Et6aSS^*$gavh&T(zkm4R2O4s^WU-L=%S_a#=hr^$NCiLw|zKQ49v{}3)O&Rh_zSzjy_-p4Gd=H1?OJg?l>o{9Z49A`r z-3V?9zQ5PpM%zC1rblDSzv0`+0-Wtw$XJMO#1|qN=*D#m39GTRfBECJos7w-8*7W9 z=v?TLa|jvA&Ty9u?R!mp4fqP?qd6O{c~|{cpUvx$11vc*Z=vU{IIjipjv&ud6AOyn%V( z$TX*Fz93D+YmXW0F7#^uH~oL`uk`;r|BL?Lr~cE1mKF4$@PFF>Fa9t3f90|IzZzV> z_{`U2*V#P4Tm_9DmjLflW=z5THTW;#IV&9xa~HT&o4P$eCjEW*7yhe-i^!E4hZzCy z0tafL8}TmoE`)d7kq&-2-nt@0+6b~#^Weqkq_`W2ZxL|V;GQpIfiJ_cZ-uP^bO(Ke zE_l3XMRZ~Ag0*fdul%}47o$WMlnpHw;Z+6E($TDRa3f6(|*-%<|oJ?w1Zyo`0D!+I8fC^trCALa?V$MxSd zzfy2{; zqvFyhxTVYKLk%(qYw3-GvCb5v6OUJZa=kUo!Sa3P9XkFa&*J^lDSL>2)uB1}Ue$xV zEjd>*?@VBA;GA4met|s5yTenV@2L*`g0??%DzZEC_L+C#FN}D}Y>ID*d9vF3h<6vU zC&!pn(BZTZ);@~7_G9dC`9DDT3Jhv0V|5bk4<#87#wN^|O!CJA9ICOIH^a#<0lKc5 zskHx5>e2Yl*L+0Z)drh95sSTW=ASvhN9R%Xt~ud31HWWZa$6<^UrF7ZS32<@rTHb_ zrDGUH-ID(lCw;^cz zU&ZsQ-ha+}_4gZi@2vX1jQ6>`3rExr!H0FXk<;NZyXBinH6L)^o2-Bn`F_c?CZa+cLdcQOn8Va%`lrRBf^`q0^g(|{Le zkCzixE{nUjFh<$8om+2FU8-O0iBZoR%dO!P-e*~9&LB5j$({^l30E~ozp`EZV7`ri z5gy~qXTVePkG@Ne*hw16qM|9&M{6Q`DWbDALsP$oPcGATt(WoL!FWjS+Qfn}_YHJP z1k-l#h`Vad+VTp<5j*waPZ2IATu3;da4z8^gbx$2FBtwH;S2&zH)~LQTn~d=!|x%~ z6X4~;V+o@PVS?7EEw)GhG1?H^U7~0CyYOUz$18z7yW%5N@dr$wBriN(d8g|6^{VH+ zRnL2>o_AI~@2Gm-TJ^lC>iN;C=k-<3Ypb67tDgI+o_ngE1OFIm^Wv&_ok3gZfCmY0 zPbcBi@R^LIa6{>{(0&J@nP3rifQM@d8G`V=mGI7w@OwdU3EhNwgsFrE!pOtqA-IG^ zgib;`;Q%_p0rHBkw1Gd7gzOi(D&GQEq`#BSBa%d)LR;ihQoLub8HY7Pk6n%Z1tCp3 zkLKr;#Cs(}w)wQ)kj6fnxl8wzi)W5@e1A>g*Tj47%#P7c=-k1B_nU6tQ7GnXf0S{>imX$h-!WD zVwZ*K*umlVQ>MvFnVJt(#vkuExNlNbe2X9dHu33e(Br0AXZ4}4W$e}x61*?qznQRy zaSO&P;Bm(>UYbA5ov-v$_r5v=(?8}Y_W7G4DfX7whYDMl*E5dwb_#i(bp+$p6pUAl z@zQw6H{ZrzNCvv2a;5PPqs(*?|=FF zKAkjbv*;-3|8n}j0Q}VbP4XovUxpR>y`C_aP(2ra5g16ms2)4{HME^;i?roKnrp`| z;*2dmQH?B~LS9RgK7;*5c6IrazAYt{kmF0amole@3?xZs1+GcwYdc zr091}N%qqz#-S~D7d)4_(CsTPw3ZjGR2O6J@hHhOT4R{|)W9k9wl!9KMNPz7Q6srn zewBp}l8XiNe+8~-e=I}jlvwXaB_pq2z@8%fQS=%~;~xY(&>32bwt(2txdtC-1A8Xi z1qPku@z;dT17E_rZ*W?TMSsB&+NS)qzW-L~GbG30x1F)Rqx>H9n-=`8mU~i_R&)CZ zvX^;Ho{G_`z#>>ll z;Ja-}PoF0psOQIadF8u)d*uH$lDe%tR(J$FCsOxf@~pds@G$*Mh^*SLt+A=2gKh4%`e+ONb`HP1;*SdpQGaU^VWa;N8}vCLTMB zCe7u{Rp8h1@^zHC2VSYYX?FR!hs>LA|FqOHc377{6WX_xUH#EK?k&=Mh5R!}BRuSf z&xyxfeY@s5$tHpwcR-WoBYv92ewultfv$(s{`-ZzN69nAPuJNFYqr&s7_1NYUW)Qai0GkE=H_)#% zG~EnNnf?L8BK;B!Pt%xKI}O|%D~aeWdCU!`@x7?M=w@_hlAC5&qA%_HTG5{=Z)&Hp zDHXr`Ahc$aPTyIZ!d5RY%}TDRL04&s79UxO&0)fu$7Wbv*sFOk+{2j7fT!%{U+a6p z^+le=1E{|uxaz;1KJ?wh-XQ&%#s3ce_Yh+ANjx9^SvZcd3Dd8y`?$=0+KE=Y%g6$> zAuJvoqb%jI5{A#nW~p%CHsOsYGgGhj=t|K(#*B2*KSiJ)^&v#rOSfsvS5_wa_vr~v z$eGdO;pg&gmrbeH$b>oVH=*a|?mpvt-EqU(>xlXH z%+|%R1#!?tFeX~}#A1TE?uoRb@&&2A4*6x(SrF}YES>O$d}wn|zJc=87jMp|zSQ!v z^zedR_f=u5i;(@Y{BOFYz~5Z;zxG8Buk&sz7iqudsM^Him08;k4iA2bywKCgXmnn{ z0UnHwHD9X9b>(fVvk*z)0|(oY(Wze#)nx|RJD6LT$h!@k>ypTJ@h|7A)4qf4gY5$6 zpsY+Dy~xtC(rAy%FYm5em6ug{pDr*r-*u=wcfKhvNK1J)+E#bb=Ipxcm&4epK$}x6 zcWHTKwC7__x;6EoChg%#IJrFkEVOCjX-iE8TNc_AC0=J^wg;T(ZGV!xm7VbQNzRpg5yco2h(Pb@-zFvN>&cg>(1YZ=| z(~qPcDu?k&e88t8)+y*T;bqRwq4PMCS`+(XzE*n?qzz5Tpx5W@Z$qezKE&)H3zx&_ zzDGN5Vdn83jb8{pS;(f6Sx3b_pSPVa7p*M3k+#_b7qVB!9$4zCJaxf)&E4+QseApj zXMCyFHd8{`6@0%O-s_fFyPq>A-i?0!g`xA_%U&P*aiIxI@>a|EvgFX;(H4yZ`6keg zDcYX{r_WLO!G0a`$mCFN=TIny-&Sx4z7f?v*qH3HdY4JC#xUY_YC}`jRHsI zw{djbog&z3Yy>Z*tI2ieZTG^WJ@DnC;AF-39O`#?3jJ=cC!M+17}?_rcu031xqI^H z_;W*}88-vNtZP#?Ix{PZo)G*Z-g$0_9Vy{9^ObCp=LinK3H^@s&!s5o$C5sp-8mFB zX+K?HpRP$`N1u-<1K3i=9QjV2Y?B|`i(!>xSvTdw*!JVYumGOkl?&pT14G19->`5o zMA|Sgj5rq+!^~+7>N_wH&PryxjC9(E4B+}8WrfM}L*k9SPjXICXWNz5PI>$i{I~I= z5yeNT8HZC@qoE(V(TY7^9_1LCfY)P3p?N1mTj6~+Jn>@kjAl=9RD2n2zpN0-xJy1x zz7T0wh>jficj^Lzx5ymqr3zQ66TDZs+6P;49CE7qkWLn-0~@8WvmY|Iq zbaNjtKHPG&*SV?~9{5sT`@y5YMfmUpbfZ&LH~jgoFlocFos8x4jMwbK`zeq65ojA@ zKz!I4H1U(n7;sLHe8Ba_I_TvyKq2cIS5a(DSY!4q526CpWZ|^*b{;HVGO(yW3KrTw2d)KR6s-dmmh-Yn=izfTEWP|uli$PVG4$n0 z+O09PEcyZ7ia)&M_x<1bCR$az@L4$UF#q(YD7-NGX>j5a;3C;i{V}+aLS7&p_r>H@ zhj4jxraLb?QSq^~b>?f@i$NC|Wu;!Ct?@I%b^gMazUUo!k6180`40ojpg9mF0x{jvscDq6K( z-`1haux7G$CC!D*hpEWe^1Ozz<@qgR;U}yW;$zDl@r#S|TJUeqI4FN2h7UW|9i}|T zEu`8{E?=L)4xMzSe7>K>dmaAV>*AhYbQ@bgm3IL!x!_|LGk2cPp32E(@vsnwe%e&i+#7C4z*`P z(0A(k8f7+6Ps8DQnuf0P>N&~eT~-#q$N9Ebw;!kUwfIg8%2oRV9vmZ0r`ifEkQWN` z8%{QM(a!~C(0<_skY>(@_JJvKIXEl6adP=S`d&-VZ6C7+|OltXF8>4*M$NtHo?-~lwi>?^=v(mp4f<3)P7~-8V=*lF)MJD80qT`qjQ1|y>J|jwM%va$8o{BF z?`_nlzBl^q`fOFZfYU=UzP&;|wXcox_k=Dk?3{S9;l<3swrE#rcKT^1`S1i%2Ce~o zm1Y}hs>l2V=p={_(!q~Qw~meE76gvwJ9-rTryX#R z=Y>2s^UPimwBxU5{qbz)+;uR9S_5g^G%g)po#4jdu@7igx+JBmW2}Sns%bYUPwO6y zNdxIbAJWlKUP-hyP54V&USNJz--LU$v{BA`=F-PcM@`L`dCF0B$F!jq+{}q3=<PLZ!&}o|`p`hR%|V}7 z-zabOxWvAKzWy)xpu%P-=!;+m;B|D_#~O3BSGrTt zpz>6|!;4IONaI^oUNwFktIVL@>U2S0WFHueOCx;|jtKVBNzbSnCy$Q3aT;@sal&@C zWayB8;e_6+;W&Rjw(S1A^uNXNnY1kdKFk2eXVSJ=;IaB5d`_sHx!X9u=gmJ(jQAsX z7=CoWgRc$$`{O(xH8(Y>jqFPeo3fyvsg!#f?;5juWPP>2dLEfi8Ps18e59AIPUq?G znQOtn&sC+9JW`$RUjJJ=bxn0HF3zAX%_%cu{=GDQ`Cwc01i!DW!w$_GH}YhIJ$==3FeU`a+=j% zVE4nea(&}Mxs~I#K0PvS8{u2DckM;27p`2Gw~}A_5pCWrU*93eVUC`Vx2%bIJ2vUi z``N4$;+e<0L-x3meG+r%lWu9kNj*Jk2f!QE*5g13nx1A zk)|as_1;Up>mrGK;nYM&k@e6+b%{Q~<>?06>^Sp^aqe~>7s?c-G%Po5tV_)E;zPto zGDiMZ+ozCDvbdhP)v{!tJ*jA)G$BOaLw53l@%JKUGUf%1x#si$AB3;qgx04v_-reG z*qS0;9m@>2p7+MJPY;;2QwDh2G2lOL$t0z-FX*F=C1>$GRbz5p!}8JzCoO@GxWbW& z>Z9Colq+1bZBGX`&i;6|5Wf6Yn|kcfdzPpU+8h^*!|2Xz;jMi!G%meo(&JsL&AQ>( zX+pDO;6Z9S`AfHvF5?Uoo*3sAJ`X%X$FncfK7Rbc$cO5Wub(iU@-Y)TtEBg!uH!F( z2MVXgZ7v~m4ckt(5PVbp!pG{k(Cl&GCHUv#d(hSizZ@uZBHxGM^XoSQGiT}eL;n+& z=AHN#ivJ&JZvx*`mG6O{bMMXCv`uM&G`+x0(n4tk)0U+L)R5LvTGYCXQy9m&ENY56 z6PKA+m(i9*S=32d#4ZR?MxTI7QJF=@d3Bk6dC4em*qpg(!2&8qXDJ9Y|L^Z6#mX?g z_y7OlbDHF=zw_J9@BGg1+-rXuG$PuGpecAlfUI4GG07*I?87?u`$q;`^|Iz!BHL|j zMvjfm%=r#u86=aU>e3!@z8QaH&f9T*y^g~i;2*SJO?w_|=&i>f!;yh-|1+B4GWLfC zp3#_!-`741Ii5Gbwa0Rk;Az2zbLU0xkPMYPru8C*c8_LMpVb~3yDI*Svn{^X5Q)EN zZH+&6BoaT{cO9OodBbY#k2VPW#({|Th1>)|H({x^@E~=rTd|@$OGAU?;gi|NT^#^vdYE3e`LESlo-cIWt$s zNp7fanbe2=TEEmU$q{T>XyrJxgrx!OqM9KUv$&-#AYFD}9} z^1)x*y}j{e3d+^%HL>v*+Q@Higv|X4NkhK2R}<7)C95&wvawdzNS*V`p8txni}+Wx zLzz)~ocv9=+Zl;ZzHx2bxQy;q;XL}%)$vs>Jn!JGUV68llk`651D`I@7VzPHoO?+p zARl>{QbZh)iF)k+#lEj;Lf`dl^m;=07UEg`u5pjWpZ9J0xAHIt{Tj8k^nAbLDc+a? zKAFj(!*qHR9Hc9MpxX*Flo>S=11o=)CaR`Sd+9|^!t@<1?W=RBd)j~&z=G;PU5!!8wk2E z&V#^_FA`U9mXEvMM;_;*7MfA0J+8nX>Lt4e{OJ7^-lOyT_{o3Mw%nL%8I-#3A>l>9Eje>2g$zE=M2~cb$&l&S&x^X zcS!+naTaPMTf=!h=H7yKE%3uoJ0bM=py+MZ-Uct*u%}A-)vq0Jp*_VqioIwXN$tBb z@UDgbeDGoISHQu;ZR>H?f%kM^FHbSk0{PaxL}yK;u{nFVzm>1oXy5jGeZNofN9yQd5^1P&pqx$x`I zSqZbA7O)3F|No#*#EnWQL%uW0*7ToD=b6)a1zBtQhthd=RQF@*M`El#) zc(w}R7xuk163MkhA|h+Vo%_g!Tp!MRp(hYij`wi`PewcLpG}JlwBtQbZZq~Zn2!~G z&^c-Q#i`hd)^a)@h{W-{#3Mf8Q9V9~-hUt|NM6L=>G~r5zF`^@{TtCo`y{;62YuVn zuNkp9e}-N&;gfJBv4{F2z>5Vo4)`R#4s_Aam=OP?$2B#Qtxvd*#C`TnM{u5x`84W% z`v4=wl5o(IVy1MzwURp59l5(;N}s_u-A8daYx>s`4WN6#Csw)(3EjII?K?<@v#~D$ z-*pJQl`-W>gJcgGh>yXmxy-&Q#ecA$sqQ4=3ycN%#9jsVEO3H)am06FZws7a9u)ig zzm0`+MuR@yxpBf6w-x+M=h_i|ZY=bT=b!dV6ysul6bbu8j89|2-uQ52JkmpiuSG%N z3OpmI@HyET+C6cYWQxvL#a7l&&j=&Gjn30p_a}J&0Nn$*fR9vL#J`iI_4D*&fb?-PcX zd;gqcZhTnijr=)BYJ7MM@dXe5Zh-Ea(m9K+2S{Im9+24$-1}QSAM~R<4`@`udo%iZ z#M-|xvLVh9^MdsTGLQWszCQ(CnuT#mSE0TL-h%o-Tv>2!e;eu%|NH>w8I{2`M_^B5 zjU~NEDHV4KIC2e2Bf~}pT@g4>AhPcW8hgv2K_lZpaJBK_=#}fL1GYzWzGtVP`S$Ms^oq z<~|w^b7&-(f)vZxG$7pZtAV04Y<`qe{3M-O;EX5N&>P|ANQ7hZ*12dS*ipp^p zxNk#$hCMu9sQtp9$REW4=iImcK$y zb)E!`aNqp5=)-_S_7uVX2-5TPJs25y2cI;zH;Fba^vs^nktz7(fFnm7uZet(UFvJk z9YGj9Ka19|1|^l zh<_CecJ~8zj5R*qfqZHQ{BEFUjo_|4`Sz{c{uXQl((^bsv9}(^fQV7RJ`+3v;s22M zP{g~0nX=|c0e(}ACu|by$hwRARtfLNraq$H*24&BK%FN1X4V|Ufn=rI(B2OT_a&|$ z0E`=`EF)b;d=EL*f7=^x?yt1tE(q2!&<*coVh3`jKia<*bb5%d(hLgW3i8z#J`6k` z<~X~=QBjGZY_&$P5&ztbbX&WMli^_)0Wluc|=0bf~^*#VQ#blFy zg-j4^1nU9V)g)u1;opxu8uOAg{PcS^;S0FLr%u;%G=;1YPm~eH|YbwdSZcnAhvtvAOdFx?eFk|Tc@yvn*@GOxrd#{Q(Hg`%>NYvn=y~4o5wfd%c+MEOoU^C##?>^pI8ld?H7l`m`#z@)zun_&Dl>KcI? z;LAzv$(H&J@<=~~30Bw#4y6_M!|A<-tw($~MwDXoHR;T)zgG={L=H zCdQ^ZkWa`p%8}QkK<=kitk$A?-$b6DfuiNBUIL z``~T8XLuOtDWu)KXJ`(*ErL9xr;v6>^gO0vu9L71LGEmrH{FH6e&|D=2Kz1gXg{^P zP@S*;AL=y!Z*^cFksa}sV}X`|^XizDDCr5%9q;~A{9{O`TPP2|GjzG|_gj>{BNBL8 zvbP_`I|q+Ke;*5848qwAKEfRXtc~yCyUm9?J>WaMPkVr3)=1Ww@6jWN!N2sK%CggClz$5Oq_2Jf zd2F@Yu|`lV8rrnM9z;EAlWaBjv&f@I-bG#7|4VpRl#k^Nh^+y;xpg(8XO>er)rC9` z6r!($m-V+oE_L{7Qntz~fLrpl#s$lD1F*}jR9C{e3AJ;>uBUMiK@Ox<=m+!L23Q1( zV}RCcihT>E`^#1s&N8mSo$+fZ_AHmTM#N3DZeVWI7w(M537-E<&zbV+H_eB}_!;t_ zM}HC08-zbai<@v)d$AjB5et-@F7)%Mt8z!?gV_D!y{HQt*0~#Sk)MQQ^+C*sDUJQ# z#n=h^nEtzvPi?M7{g+XX>`a>D$hdlcfTIoLQ+vcOeJJ>V1Jt)mtKqv%y^GLT6nD@<91*BP?oeW+iCdHfP%5UvRB`4|Ih!@rCn zOkPbf1jm0hs_rb*B^+UoVNH0)^p~V@1bwOV$w|OOW59lLX8QmyY-56#`nMLZ(&+^T zKmKd<2|VfJyU-`i&5pA#!rgCBmX|Igdzi{-{v&fId=PB3kEHRU7?0*+8a19?XUeJp zgBQ=N0uK`ZdEgtM^-+H&9((|_&t8NzhXX!3izod=vMVVR$GAEbiwhpJVLxg@{7WYG zrnn1mZa+-zi68WRI@T6jnjg>NdE!K8dcNPt-ud6v{VZK~5zeJe%DYG4`-7itb^k~^ zS{Hr)0pA8bFU2SA!FAuC?`nPjEe0VAjYzGL?ZDm6kuxS;*Z3%3BO7UeWSYteF43#$ zzCWgX59h3d{ZuZfkhNCK9sO+uE+yFH$+U-0?LjlqY#rr>gIq+dt6U-LTjiG+Qa-se&DY3W=S4_U366*1`yaiW-Ci80ir z;XtsT>psWDalz{=m+Dr>-vO_X4i_;u4juqM#{W#VIp#esJx9rRGlOmtF>mX*<&ik% z+dt!F`2R5<%p2z@u&dE7uXHn1=Zrozne2pu;>uC-gZ&C+hPYozQ2RPB(&1hzF#(tzLqCMDByc zfBJsRN%sH{cN_*>72quorE5UvtI$TV-_l>cG!oCf<)QeDr$8^9=Z={I+JR^C7PMi% zPrfQ7$o6W$M8A!o*HoezV5PEakzZI$I9L_$(&+|xBcpH}8HM9W8pplMHR1tke>=?; z-_Oy_o609&*gTX`oU2&5CLXd7elf=p{CYb^;rH4Ue!Z)`=l<;X(1}&yfvje zEFth@Yf5*}Jr|+XS8iChF8=m;xkd<}nQ=9xJMufAJ0i>bXDDHTqVdUaI}?(Vo6rpG)cCk$&Mn`Ox^>hIq(if^J;Yy#MYI-eRkzt9_0b~*A(iqF#<;3>kdf%F`BDz(Nz&k;|N?o8_qY7e+|y>X6a zUf>1!{S`9<8Ov>67-ok_w(}P06znu-fyZh_^{b0Dk~8)d)vJAk_yYXN+Wh;PX)2drdAp)O}W1u-$M zr||tLeBX}mF5Vb-ai8LGAs^qL!uRd?uG@Fzy*aKik(^IpTMOVT+IMl?znD5#$-!8Y z5N}2CG*m`yaDJKlz)3ofyqf$>RuOgL0 zlMtgbm|p7Z>iu_z9vfA@<^tuv8C70&f$}#;mBZ%ym+^l(s$9B2`R-BW z#tW417*(Eof%2zDmFHccylYf>$py;8qslM4K>7M~d1hZEo&XMmY|GKd()ALf@cdx9 z9^rZf-_{HC_uWzBy?uf5+eeju?E>XDjVizL0_EQvRbG98@~@35f8YY;SBxsR2kEZr zm-*>(l;?BYt_ChHRDKD{$?5j*%4eb+zHGgG!Gr(GFVp^)@rzJC;Vb%|fbxkbA5E_j zI7ibf7xgBi-Uz)Cjnj@5rSXwy{6c;#X?R#7`VW?f{e$Em_B!G>QZasXR<58-K^gNw zzrdEq{=J@gSM-ZG!-t-?ii#iSG4CDbeX+wf)~HpHt)IGw2UH>Eg4z3Vj^|{3;Uk6c zsmo~ZOT70FANrKoro)o98~boC*3wOq)VCXP0A8kl*LE9_pZfm)F`s<83dZb*A74TI zC)S2~eN6cHX-xcfN+^dPxL)9{;M$olmoz^7M39!H);b4DJg zIsaetXq~0;@XUY`0kGQBbJz!+3VnLqNbu7vkzV-U`$Y-C)j z^CI#`c#%GHz*qY7gVTIR{Dr;mz>l$BG4E2Hw=kA<^?y@*Ciu%6tKq&_A$Y8id;9Rc z58o*v{+Y@8^USsEN8xW)@$97Bei+Z7;kCF^BCHbs*bCjZyO@c)>k=%2&qy7`bx4tL zo)l@#qyC9U;LDgZsqf7JAMP3^vUeZ#B@X?A@)hrvHHqxVQQ{GLhuI{YZ`r8-3-l`h zUdbCSeAyTCN#0g`_W9^MjCo_Yi{Cd^%YNf%PMT+EzV~5F9qvZ8Uu-n=uYD7=(Qd5cIr;o)cGs zJ>49d%N6)^;Q7iGsBgw6d}~%Z@3KL*HGR%8ea^@$lqy&2`(Ok1Li*WZ(^`F>V1j*0 zwzC;_C)uMG*y^;Ovtr*(K8Ot1yC+SNqotL)f4;;^vh?r9K#XD`{F;VE7~?wFGKf>0 zyaIOEZ5ZQjjB!84Sc5Sh!5Et`#ukk6LyYl!dJM#e;tZgK{Br+xj2ReX5yq&&7&l;y z>oCS`7-I#-xF2KOjWHg<7;7-b7L2h8V?2*BewZEuxTG*5@#frEBegUtba3#~$I2(elC-th@Hez^9NK;&IZw z#NUE9(#B=Pc;>amU5>Um$qTnbE>fvRRIbrJ^}W#v9Tnz%*zagapf&CDxQY}+ziF8P z|9>GfkO}e9-nih46sJ?2SO(sk{hDGA*(U%1LiRf#QLhakp{u0=1m*(pGZq#9jUnkp? zbaqxE67RCJ&#~XZ>w`%@eerK(eZ@YVY}vQ~7)2!#Z-IS;TAz$wYb)=>xvbaTug6L1 zYi0BwfX_R+?kdmNS60H1*w#yBawE7J*NSAtf46>?7>| zk}_0bOgkw9lbfta-@C8U1nl9#P{; za_FODeYM^_lN%;4dbsz#nu5iK7r6Usf3YmNgm?D9mjLPnDBHCyr05YpD?f ztTZdeF0w^Ea$$g7bUHRgI}l(cQq*w;SH53UtcDhhubbj-Efj*up?SxRuH;bDhkWO9 z19Nq#SF1d1RC3VUkB%F5Ft-30-a4KfD%R`Od`K`oee9dfY}%pNyMukT^9u1!X~ZG^ z6+qi-MV7c+WG}q-!e8ur3=M|*`)YccoPmsl_A&OCe)}7JwHrJL??e5>p1ZHOd(jIu zcVEF?x@YP4Yf2X1wXkwoZs2!U3lmxFmzuqW6|>k|TII@%UB<)%XIZf^TD6jS*yOn@ zPA&cU(#2YU=9=Kc(nKD+dC~nf3Sj=>3BR1}{iQjoqIUboynju@wRKf; zaoK$}uP-yZA5mLs?1lBJdFdb3MN36sCL=NL#EseHYf1uTg%XYN^fGQcL=95)Aj3r{wGyXl_ha^U3pk24Z)ofZRQOU;M!O3MzI zOD)mN($c6<+7K(z3QLQl#ig~eBJI9r=4Ki%mn!5*N`Mugifv}&X8p}Pz3vceuC)|A zTHAtPg5l#<=Gt9NEj5IH&>iGjAkUhcRJH!(lQcvo;C*9bTO8Zxc#)?5moad z%R;V{EdIk{pFcP7q@PF4iJQ-6U-?Guo|?oPuVTY|9ca4@G_HZd&^8KeKhkhEV~^tV zF(jhB37;o62y77P$4HA%H|y2jJ&r~B^{adDuX(D8y);+02ILCmclWB?Emh=CvIKZJ zn|dnN!Llm$n|}-X_JF=~sWBT3*KMAK;tJob*<{%D2QFmonPHxl=ezJhMm0KDUGpZB-Wj)*;mT~!3Fj`EMN)bdUMMx ziJa5+H-dW%vTdd$7t7X!dYrkKTL}ygo%w`$isj|1HF4lr5OpM(A-De%gUpp`zao27 zo7b9{d{mJ$66)v0GS#ULpjPRam_fGBR030FXMIMZ^CMPlIFOMj`J4x&seg-3)>v_2 zR8^l*p9$bT%n}0A{sjYK5Ris>{;ELCqoYcs!va`04pj|Stuj%;i=iOZMH$J z#2il?^Fnhxmo%WxUr#|wrWs>wdJZII-znB3sy2;Hx8hgq6z^i)E>%!VHkf77(#MZc z`)iJgyOZ z63kRD6ZKv~y}W3vt62UGPY&fJ6_piB2ME8tr&ys$V;%+c80q18y@%ACAMQ1Tg?6zc zIkZ2?L#((q$|kcSRya))x^b=+t&~FxSn=d2yT}m3E#}0%rwkMAu?p=~e^zX=Y@M~6 z6=RgHQ>>Ur4YH)sukW4mXwu|I6x_;9EIU;tKQiTBCWVqifn!qlcE)Ecxtez-hrXXQ zP5ga~zMU9m7n!1B4=a_T#j*>loS0Z~+R&A$a*Y?R@SA!S;LN*6UL-Fx$oJQ%O>g&# zf%)L%38z}!EWmeM!;FdFea@z3qJ45`%ZF2CK^BzZq0SRISSbbfJvGBa?I-vPRQlMt z(sd`S3pq48m99ErsDGwu{+80T{`lwT)xF*~E}D>%-%r*G>^&p~9$_5^$CDKO_PE%~ zK!?$J`_g%K@ci)5x)Uz^efAUk8&rpf_ztG5tQ{W8`-E0G)|qN=-?OHd6*5qvxprkO z-!we*_Yv{mvoeN%f%RYZbV#$ZZqxL-Nck9u3k^FZiJj% za*`KWu)^H#zgS~MPLr^gC8nJ;$exv~)DYF0JHdPW09P*eKegU!6!t338Hoia-M8AY zBAQ|8_$oS~?WrHvtxPei>TRr;R&6dApjeY0U#Gr^@9rjcq*i^m?C*D>>CqwfX##Hp@B9!KQzF zh$%tPA*12G8pv79THo2k5`X*LrnRkic=G+mm^BeiTHJz4bLU!e=xxv{0!z3F`Z%#? zZLb*0liAcu-@j_2QJ$qOhwWxQL{OGNSBX)vd$WI9>|*3AflFlGA%tG{vqKYPq0{Or zk&TJYldL!^Ds=N6?p^ErR)L}lUAL%SxdhzyqfeOYj<4lvt^n_Tu%IsgT9htFnb1Y0 z&wcW}e0K3KW2|sSkZWwRxLNEp^pZZxY{;z7T6AB{y)_Q`{_@{L)7)Q^tLCd?1Gb9m z%A3{I{-Ky@q1q%QwhtTYxZBg@RD*B)ey+&s=i&W1`FM9M=B6UShHVgG0}@V}KexZ} z5Xw^XUfnyc&YD=9gnoe@H^|IWs^&IGvgrEL~JP#ii9tS1+wzv3kX-wl~{6z@+^RBj!W%T%pg^xX6gH?tvX@No@H21TY;Kl_k*NbA#@?!byf>!%UDem7~DI1QtEeWmDO5}-B!>fL@h zIt4qEp+Ot4@pahmVvMx$L&@1_#;Ml%e8qXw~WxgXL5l%X;Fv_g(`;f=U(d5us^zV)ybXUr}>l&6E+DLMBfb;cCWGd;AqA1{MoQaOJB8o!c9w7qkJwegJsa1#W7iU4mNYAE#{(@VVPnXu|_fH+T502aAnjmbKIvbp=X{_AGOdm$_6CtEvm_mz*Km zLJzOEc$_}wv6Kkl-N(<0vO~55|6}DVue8c5tJn5EP$PzA88DUb7%O^A`vytE0p?n& zn&im(Ri-=l_TS1%z7wlncvsUz*!m2aVNry?}Tg0wN0j$kq26>Ez5dyA&(6QAY z-&YBpK0Gw}<7LPR75pGyRi}`BQFOcCpz9CwxRhMu{suO-v^UZ1W}UV?;Yg0qHlgdv z)!3JBX@bQx`I*2i0kdXv?}A0n22Wb3^x=hVTTsKS>Yb1bOsB?Jefn!G5r1#KQn+=#u z4dyx;UE1kr5`GIk2F^QpMubH#VW-nqI~n89^JCBFleRM{J_+ub*)X$Sl1W34XvpLl z&>q~;ZM=RI?Z177Xuln_p8(n~)XYVtY1)4SoIF2G`(2>XGwUU#xH{67m!`e_+}dnS zeCJHjt#Pc*#p+U(O%78xTE78&kpsR+4qcUWH7{#kzS5=A z`k#5l)9ax%JtaQk49g(}I!A~SpZYw`>ZjXy;c{L3^wl2DP0?>*ntrxd?R&a=MXa;@ zK+Zx*quu|lwcK?}#n_#!(AIt(_Lza%Yy5Aut#b3Kb|!=k;Z<#N*Myy8H?a<>!vVZr ze1`Qnd*z@V`$z%UMb{5zz3N53eAl=aSmA`_x2e2n!cHD?EWO=ttrLFxe%q>|7ub_+ zoodrkhdgdmK6eI_tjKkbywv4$8TP-d>K!~&N_P&>E3WY0$OKz`feN^@*X4mP?A%> zDvv$AzFHPz21wS^ZIagNSM^uO;YwCX|E?HLZwO``VndZ8iLx4mto@5COtp{F-fhNgQS zJUV6kPNQ7s*V^36zpid?YgNWSVNG0nTEJXcabEO6&s2H4x_qf3^KO>7>$E|xmZ4_? z&9W(|G+Pq^XmB3&s#eX|340(>b9%OFO-wj#E96BI?8kzX4Et#x=eg1*dlo)WW0HeS zG3*qs>X;LJT`qOAi}-;R{%P)egA-)SMeg@k)?QMcEC+1u43-tIWFbX%CSXDJc*}t6 zpw;C}_&$+jOYwD#)U@<{-f!t zt#bogv0|DM@140CE0u(&3zF|4u_q${%NwhLDR3h*m)c`wXE23@d8kYl-EI%r>*LP2 z1I20;@cpObc^Y@s`I(1opfcI*5#3b7aAqoO025aI=S~zumsu0oey` z$M8_&M`G_}l_?3V39nrB%9Y{X2W#F~Y?NQFyC`6I!qlEEGq<_J?8@BLQj@*O@`SA; zBb?d3MCFC7$QYU}3mTtY1YI__g_WL)^~bRz)bixHEqu09R^}`zVf**Sja?z;Z)$Wr zT+2Mt6Jm#16T7U6AlFyN98$L!hUcnX>T$N@%HFw_(!~C88nrJeogHIt)NlWyzSJ3W zpuSfMjjo^3Q&^G{6Sr;iiwAAbW$Z`}eJd$;J?du%GG$wr*eSWK*Gb#>>{kZ2oU3tV z@)?vD$+jLzaeR%>cxEsKvv-cA^7JY3w7E*s~HM=S!Geo-P~f-mIO> zPRWw;q`)$IK9fez_Gf2PoRHxz($1&$;dGhVJsxm=ncDx8 zE)(3AQ8WHsI@jQ~Z7qis6nwx+S=8}?Wt(YQ_WS0o+|w*C@vmo0DN~_y+Ic9YSN5MW zZBf*53%SPxe~Dc)ZQa6V1!iB}cY~wYyze1)casWfH_d*c+B})hr4@O`pr zGk10R#i;qosnA9b95*gBbY^e!H{}Ml>3Xp7^Bm~GyAioXdJtP8=;)2TW1h5O=VuI! zlT95t+obT#)6CJ!r-@O)Ew$e?4fdRe&yqTfoi2G=LutJ;5%`!!vUj$6oW^OcA38X8 zu=Xx<(6ZC~9B&swF4@>Abyvvj2{G~dNkeGCG#XcS zo=RF=T&11Ym=2yedNQNaIeFFkaXu@&k6Eq-H?oV32lKJx=ZRUT#)Np{&nMaBs-2tF z>(!SVdh5rvkMDT3!T)&vlY!bb*y-O_ll^$j=82)I5HHHxEN>nY&J0cH$lhkqiU2wH zSUQYY5ok5|XN*=PODKEm>jj36iCbA|el)WyyW8_(gKAZ)cB~832MQd#e4|>gno3OX zXXt)DeV3S6eKK?Fm@Y$ShGR^JrJI*v=a{(pB%gh2ZT1sNMY4h^+-2FEy_HRI1RMOh zPZ+T8uV^uJ@mV-1Yfr5_d_POveP%*uI~&t9#_>e0A-sBF_GW9xJvElCdEo~K;L8bH zH`_Y$v|DSbPe+R(%!&`j6t_<^gt_N$n(f>wW$m_Mm9n;5N3BvdSart6Sg9#i_F{gg zzpG|v^{$%D$)RtYseyM=h}yP1&E9KL0@kh4jNA~PWzw*(itb=HG#Qq&vKew`u^l2&n`+h@LA#~5A!I~cQh;QQt%XZeZkMs$D!s$%(VfIV` zu6&+C{B3nLa0Q>dh?mF;W@r=cqYY6wS9PJDFx*z+TCTnUT6+T^^C))#81IOkW#*isos+}^5@4aT= z@7-tMsGF~~U}a9Vd5*oK^GAV{pJxo`YBfD`43@pr+fKHn37)!{8AiuAV<<&C$|G(v z!q05#kY<=VIrcp4;GO-(PE!~2`28E_8{17CDGs0JhEDRV=qD*4$a$F%GrI6ivvx0l zjNMWq#SER0KvQgrh~U&q|Z&6d*Q_{vjL~JE?8Dm`60o5jWg!3g>P|L!?)H>f~F~e zb`)clZbOH?{W8qc(uJ8q=9%IQ+QWv>%znEvLL<{C?)v=y#9fzxyG*0FiO+NgCTl-2 zjBprnw;P^pa1A(Pik9L*r*`j`d2k(b5nq|Yt4p`C_qDRI$R1JS5BBWl@_A+rKosMBwF-xd}%OXu04mrvM2 z#6QfHtgvs%4;sSu@P@eEJ%ZKoqp*5X8j)8Td4$i2mvwm!o7z?Fwew|KS#_RFUkR*_ zA0_vM^;yt9U+5pK;19NaTVS^%?Yd214X@9SO8zLS5ZyfM7_<t7!a@xsS*= z>8eZr58MRWr=hwK+=Nwkikkr41>x4YDFrv_8o*8cg-q?z3}ct6C%>9UPn!69u<|s) zGpU+1GgFe~_Mm}u$-!3T;p%N}LsvUnSz~KwQzh7IrY=jnx%##!$4V?f+Uhi0kENqh zvvvQl*3xe5wse^a^L)I@JHryT1x-E1&Lt*O&zokuY_8sK7UT?>INVx&Eas6{)Sfgg z*y}C5JZkCmdU&NJBnB@7pILEIMZajY(?fqhYU%QpTZ8nAN=^?QKS~%hL5CcT8M`b~ zkL~fn-TQV#; za(=bjl1DIgm^PWZbE`jyNwTfm(!&&cDCV?)nQlPwgsbsBocLVDPNvFUXpAJH#jbS(7Y*mg<#DXhw| zoq~64XpN^z&i73U&yVGHjqP6N%)%LP{-HTqL8sllM0KdU1Hpi~!j3no>{f%SshDiK zGI)R6adya}?E{%TSzY$3tgs1o&f$uj4hQ7Aprb<0*^2zB2M>*{U#w1)@2zpFIo;-2 zp+JVCG0>rMZ)3WzD(viU)BCz@AaiSKO(R&dqZKOm+y$F*V}MtTgVasARbVrl@g6Mf z0Ru>ad%WKfU9iimSa&#r=9a1*O~E^HY_u^TRMZDHs^(d|oUBlzZiUX#$C!gLCiS$I zR>yKX$9A_lv#=uMADX8XbkS_{)!x7zG+Qq(>s9YiO;bl^TcEctpxJiXE3;s;#Tr)D z9xlJH#$Hj-k<(rQ4;o5}4;=da!Y0fY`=_#eHK)rwYh&OoM_ph8W?VOF#(%?kIg9?S zKXa?0+tw3x8g#7B({lb7IR31+`*VM0j{$HP0LSigaO8Ak>2RO~a6CT>j;wzR$4h#D zF9D9v4W{>OomD$5JwbItph8{ksO+Z|mL1v|r!{?3LwkLGVhhfg?~HE79`P>qo|>|> z#a|(FFE3vQo8Me9g6~y&&#M6G<=wSgH~WQypPSfw`Tg9r7_A-))CJbo^I6L>P2yr{nxGJeOQ zZz1w2n4arK>~46)MwORW$fM_K)5o@9?CVgw3AOVv#|?oi!ArcH&)T3~shXyzX7^8= zRj}wkUd$h~Dt9EoiSKJHzcPHe>tJVen_=`ro{9;{=BxMz~T zIcn)zuxq+vZ4q2eL1*v|oqOsag#vJ?(_mJr|KXwk!TBtU{*RWq_4^I?*OO%CC!!x+ z-h;D|n5ApU#5+}9mXgc29egfs9L&W&x-|b#J@MFAP-%E*hu-rJZG=i@ZDm7q?P0`0 z+AFXQg)8JN8T2bTaOkGGCD3ssTMpIIX`Zz@5OeqgZNQ};vNTr5d!|OZ+tR%ecqN%> z2tXfKG^nOh1ImYo?!;(!#WJ_b-M$@V>YX}%avh|%!FRw9X%Yc7XMT{`(_*UFo4ajn z=cPCY9Cv6MEOpWaPW7jOdsAyu`A^k*)0&<<=QZg2@>ph%{ZdhzyRhn|dum`SP9Hc_ zRez&O`sVdO!tns2J^8E$AeRJB)sEqzsc2Oa8{3nMy#_lV%44>E>KGHQ+VO(`yI6`6 z%nsDZkJ-DKQnjl|rL)!Hq1%$ME)r*lhlg%SR_%Bc5n-vi0_s{2XHm8DI@O@rp-Y6Q z12vBh*L1RCQ?v{oGbvi##im#ihmY1gkZ(U1rL}8P#rW!EMeTE!?_?c3B!tEGxu7ud)bP;sVQY^iWbM3V?h^l!`3tar zOb%6@!klrsKJ!#^$al(^SaI?xoOQi`7|_InjFDZO*yFy^-Qc<6ftsNvH{yH^a%JGQ znsK`nl|RpvaiJ#FvwYWjVan?`GyG)zhs}|tgKeLz99WvaYj9cX6yD)kdYYw9frf|f z7&c8b9#rJBL-p`_!CU0I%FmyFdi~W#aqq76KE+Y}T$^d3<%&xAKbmf@nI1@;x)>Ar zCk^$F1EzI&s43xL6JnHCAkh0ZB<~(;3r++J>*O18c3$6tb*r$oh`DZOH(bZdcKA=n zh^oADB2Hd13obGiX5oa`Yn8WL$6KaNm7?FAYLAj_^7p~{Enz=D_)Ur^_D*x37!;KRph3>5p zL-4(XGun;Y=C%lsRGil*a?bGC#wSdjmTkXWJUd{Xe9BSZVmF!JbK;C;8CD=(#^;FP zWvWMAPVp;<970SP)}TW%(>6<|Cs5VoY_SA>;Am;_`j5n7gGHs^jtQ<-rPa+QKT>-w zdz10a*08z5*qz(L%Z=?q$1SDaeK(b|cYC!3ur^=7-`sswrPh6353>> zqW?AU53L5D4{MjhpYw_Kgw}*#kKwOj-=fm%qgNsKuy(Ju9JyQQ@BV*k-$330ZM_ym zUMK#J*|)Ovvgk^*2$cGw%_#ky=G4Be_w()28~5FYoVT<~w7W}dqj#g$9jJ8|@_wSN z&{|5HqW6~0i+&fsd$lVyzKwZ)rQM7e27``=kgk852Rw)nnAGwEKZ`aG@Cr5HQN52#tM3~$c3E2jC1Q-18R3h{)+C(!7`t@blTNRN{tmfOyu7K9+%E0&UYU`%V z5ym0U?z$1Z^KC*$5RePXZJM#`(dUvwuMD@kjiE5(N)~Dfp{0Os8@sd`d!}s*w30fs z^cbtJ#n}kkd+dX9lVR_7YHjZ6f!H_8f<`T9GVX1zwM{M!1eZ8krJ4Ia_{?N_F9ilQ^n+1Q(Uy7Iz zvFB4qyH*_Ft~s&?kX;My!(wv-o#ZJW8l{*3M?RkDKMG>cUK1=7z`J>ClU?KI^a|JY%1`}S=b#?M z{7rzmY=jDm;Qt^hZsR?taBlnbk?9jmoznuAZecTj{Gp~Xni>G~khFY2KNaWX1bem) zdkPExb$)-K>S6f9OM;+%=S1gA`GzOOC-_Xm*U_I@{JneJaO9gy8oe=&~>llKP1au+pcau+jmCebL=fH#K@Hn|5N+=#LAW? zv}(axIUZ;Dls^f2`&p%{tTXisR6V4+2CFHRvK`$eynSZa{NLIoWW5ke-fTluOTFE zwe5VxdDN14bCQnJ)reP z*PUgW?S+^8|J-+#o_9IU8*f6?q)X=B9Cv-vn*T4`ijIpaK*H<>f{E`P=Rww6@J~ z1;tDWj~gDBI);Zf;VwizqNY;qD6Vwl`gP4Vd7Vn9nU-cY)q=P$mY9yUTEbnTIj1Pj z%&jQ_4g=7}K6WtwqX7O#w`nZaevuzxCCY6t9R>og0Z&<?M8TO|`4l^aXijVF>Gf+o`*^EM@NHzcGlqCbOXB0xPp^L$ zEA!H3rbN_w|I3eoZN&Fvm|{ z`2LhdC5v+cpcUx(@o-VYCr$J87+iQ`OUt9O{Q00B5rlXlrclHX-(*RgJtfJ0xd3sv zDk5lYl{VMup%ovGuV)^Qx~nOo&Qm902ZPfYSH3ECvnf-S_N%vm&Sf%pn-f1eZe28e z@l5PntQd3GunDq4(MaaRPMqH)Vn+rkK70vaz8_4`ibVJR)*vPJ%(`;c6|)g%wXs(S z-Mu*2=4{iS)t9k>i9Y8Wer!@-2e4*yiQC9Vy%u+WJdVGrQn#TC5pGKtFXiqs>_vZaj1}q< zGx=`6sqW&YOMoxpyywoQZrt?MK70IM>5e;KF6K@S-Ge&~^xf(f6909^{)VYR09W2u zbG2-a8WxU0^zt_VzsX~DG`2W=!3B>U6ByZv7p^Cst9SEP)>F>ayYwsTN$2W~`^tLb z&(%ADr|AEC_=I!ye)*O4o;X);>sQvZpR4!1udHW2SMSQNtjEvQoBWmaYR=Ug9!$-b z%a*EofBk%=vf5ug-!40H|8U*f5C$uq8`Pa)7~{XBn~U`>7niq6MH5! zP#m%_@uFx!T|v`?K(5TD;ij0z5qEJ3aUpK4ZgKKW7s=z0_h-k?YWb80{XeU@rS`Ix zpVhv4xi!YOzT&q>e|ZC&jwoquc|o_`sv0$E22P78%GYyZ5PA;s_)Ev^mY{se#h=DL z8r%xF>0YCLPYM3L*OMdnsEiH9y8CM6CPkJK*Cdy%dum;y`FCQU!~RAV+N?tx?;cjj zORb06&CK&o(;u4noL@BlzEP@RB}0cyn)uDkZyLUqftab>0#-V7$ot00Jto9!j*}{62?!L1PY9LXzp5^+1NMG3mSM&`2&nFi&RM3|Wy+A_j9~udyR{5)bFg4HLWO z=g9`yf?d>DKhBFgrBEJLZ;E;1-Nup``-=00kOvVO!nR`$L-^7Har1Q9rQ4@Q+?AUe z5c4Mm^3{v6YofaiZdvL{4sA;EZPN;V>^JSND&S$WZ0xSmZ|w~n5<10gV*VxhLWlUc z0N?ROKYLe>i%(9H2eE_wx_PqvK=q6Hrjlt4g0U%~RxWRU3O+ z*s=T)2i?GEN#5&+rV1I_dmYA}&+?N)-$@ER_b|gYr)-p)ocr^Qfaa#8K=G`dLO1=o zF=>>gZSbJQiUZ|=64eXHi-EfowCfX70e< zkm9_UgdLqRX6Pvo7`hw*tKNqJr%^ApM4-|)bS;5c!M%)!Z58ZV0@vjG3u{$z# zdgO*`ig~wd6@fYMY0gC-Ub!j_!@I-gF0RbVf6!qHy)h_k`_N(NIFEKcQv;LoD+5(( z@t0`#qv3x`yB@J~QobQycw&Thm;H$-cXSY(f%6|B{F#%t^DckE20we>Dq{!p{%$9p z5df@j#GHhlKNoa5g@V^miifL|7~U5;rJgn?-C(_Mn0Gzpx4du0orBXui;lTv4vZ0v zpBw&9f5!WjdcNn>`HzX?TqoBQ2{ShK%V3+;9c32CwO}p_Bsc-7f*6|PeBBHU#%EeY_ehhx8GFs zUbjiy`wg>*$oxrKmzk@AyFkmA7{y$~3T$?F(v<-prn$Vpnr}kCYIRvfoWIUzidD;-3%Fg} zJ+V|gG)Z~e$=%&PYDvCU-K%+q;or$UQya4B#)Myp6)h~RtJVz7MmcYmH1l~T8YAqgfD8prOmdd~L$yaTuU0yr4noW7t&-Y97rUd@mH`cq>H%Bh1o}@9? zvwr?3X&&~km8>{7np3~lr%V}J{e10Z&P@5NZ+UHLH7iQBEDD_UwfRb9E211sSC-0F zxuV)G=R?2ror^~}`QV-K2?OrS5_|HYo5}Xglso-Ow97v+%AqTJAdT6$t=(LUdqYV& z5$Bz(tFU?g|HIjr$461#|35Q3duBs6_iQpr_Q*xf&A}C}u)D0uE|6e7f~9r?ST|rb zRjUgg1n@w_nv7zy`kEgJ%4fA42DptaxcKfkCrsC0h~pyZU~812Ea4 z&w&FsxgNbzAEbmL7-s+5VniKV2TpbH4e`cQSxFb!$H#%IVNz60Pw+0!GEbHeH;*ae z1+HD)av`XiAla*Z@;3$$1dh0I{NQ)5$hMrvi9%C<;O*_p3hnfx5D z(aK;^zzi-}iBV`!^{r`m)5;v?O8$II-3|YPy&D`PH_~5}vWq;)V{Z_dCGeaFC(9n8 zlyuOSS!=G#sq0Rn{_0$D6Isvy9O<|@+(K@#-jm~Lva-G=>ykrqk?Z@t^SZ~Z5 z;^3_bOSwMwZ-A#Q1(x_~t`JbGwVRV30ZbI4xT-RntS?`CI{76&2SM+dK^@-wq(R@H z0!R3q1m*CtqLfF;F@B3@A*}ltpN7KM$1VIl;7b7oN8y9tuz{}CYK#vdq0r=k82HB_ z3W&g46oFlc5q^?CS_f{@XYvfzMnG=)M!7eofhYsJrf6i1Ja}^d%>AsJ7>%_fZVrAq zG~YMJ>3;Sq^b1~Glz)L|LK9<16XG%dKMiHWmy@oM3Lk-QDlbDc-iTjBvW)~a~P95Ura`Rp%?-Db1 zl&AEk^>HO!DMzh+TH}h;Z4WqBi;+7?e!5T51M108{>ePd2nKup{WkfYRL?waiB{hC zu6`-cbfh&XwBT!PTqEyMXt|Du^xPhO@eCn-qx#d#Ea z3H-6SM&?tYLCGVWtI=B+0wp6&+#_#0%4E!Rk zvX9dnv|Qsst9VFob46USx?`L5`9p4ps+$#Mkf6w#5ier4Y?xa}XWYNxyDzH+j=(&j zvu?oAqlAqHu4)CHC)c^)>o$Xnh`&qf=XOz3r>J`!8a?7`6S?AMvV&I&yZE?ySV_fL zNoBkz+OrcYX{UA8p=j~<)^86}>a%OwCiVVi@cEEn)h?^O6Z998nTOGGW4w1wFOt63 z`LgPA>ppZZNcj~3olx?WzLRjJxAJmOqa@=+hYabtxwVeC;lyO zrGeXfV*^+6qV>q3I5FNco6~9+>9c5xJTh2h1NH&-;)>yalTQZcVO~u;I2mF>aH-Kg^~(F~FIppg1p+_U0-y25iCPaP8h^6Rg7_P!Y83%3{JH*s^nnA} zGvgy~>aZ^NW!6=x%V9};P7kgX+OHpzUh9RUq2TbPG?!dj--SMz5Lbd-*$CUM518V& zp!G7;$tgW$d6*p2rx~y&=Bdi#eFp4<@}>tINZFp~aXTI^UtnWDU_X}kF&*d2w_CqG zq<2%A_%2>1vLCY_prk|0k^)F4=w6ivzegJRVZhM}IB%8OrU4AZbB|q%eNBsfO$NQ> zL!mry4VpTwMO(yTCS3@YqHPm0+O~|DeJ}y(%YDi^x?YJn9$K_)j%XinxE&Q37Ynb@ zzUC+pR@n$QN4N=+c%m)P=5zVH;r-uRj}4Im6J!#7R{ap9+rR{dx;bFTa~`l3fKr6 zzrD#_Ypyk-FDN~7VLC&|gg-1J^2o!$T1o})R3pA@zr-}s6ep&cy<1UgEWC{w;OGgo zg?_*N(ta!Gb^JOqJqJ4hWGp?Ln-h*63wzoRIC#MR73{H2u`==tmXJ4br+wK!8ec7-tNEnfwZQnZnSsWD8x3hfi07nk~V_`+NWcCV!KDZGH`JW{7zLR znLTDV2|PLtIZ)>_uBV)Fjqy#1fhCA0ljKY9WwKbqJU9H*FTQf6)H|kMs*Ht&G8oGnbEmCY+# zoOkP)%tv@tyME6W=N8vw@VbfcJ?BLDUOfSC_l{Xe|LXC(onE96PEZPt@|=^w@(DTY zGbV%1Q*|znQ;B!kLSo>rC#f~hr-F-uc=!5u9*mn8cfwy1kxB_P&YNd|bdHtJ=f0IinL{)Jw# zN7Jl8%$WPE#OO|xkkxj$Bn=;aC`d~)d~#7WDH!hDKu zj_IYkU&aXiE7HV3{}uzQP}q4QzC}!T^qxsx2K|E?7PHU`!rlgcIKW$srIKib*y1kh z`62MJ7v{KBjdWL6P|0+9D7f}gY%AhdTvBx^dt;ks6_6v(j{s}?pB*8Ephdfixb+$$R>H`T`Cpma#C;#QE8Y?Z5QkudnSXX6Pe=uRyKpu69=48#-j2q_K!&H zm02oiOy4bzIual#v#m%Ymre8T9chT>Y!KWr*4NED`Iods}sO*-*bCs^2 zoC!*AP6k^i9&|qB3I^XgGpjMGDXMGNsy2OMTU47C5@5mK;N0e-btbn3gZs|Rf^`gC zF^Q5KnfQJ)S|lX)HXv?QiegsR9s0z81&|Qm-qGh_(;MBvEFjrczPna_OzJCsQF)*J z1*sP%gN?^$bwzatgZH0N?WMKS8YY7~Pbh?7@Qbr_ebP6<;H_sYb1Ccv_4JwMVdf+T zrXdH0oGcK3k+$GRm8&a)!5aWuRCi(^fN#WiNmO-cJ9CpBwf<~yR!3B)%jv?LGE7uD zD_!5!$4}6*2aZ)${F!*|HlD9rQ%6gg3~DA+d$qkZ<@0*g-b8phQ~2gf@crt0@TFdX zFR_=IbHJMESHUus*7$e6)LDvN)t$NAn#90>1lubjts}1@zcLt{KKWz$1~t9?`J!Jh{*AkyaGj zCflRLY?*g71~|DC@jH?+kBINk2x8T^AlpK}cAcd?ml(K(Lge?2{Bh(v{xq;OyvWka z!*^lk9yfCrmtJ!-OWwu>>!ph;V0XA5wuWamutd36)!{&YDfh5l;8CPL>zSAg_8=BR zF!;?G`ZgF``@R0V|8$99Daox@b}@6>ths*L8^PdRr=|R8Z(<-55JH=Uvgo_Sz&UWc z#Gf$sFQxYL*fA9(p^Ps@P>8Bdi-DP^s)vW6DDT^pn&e%ObJmv%Pp#DY(CF)~*POwi z;p_qD0T=DZ#K31L=LO$4qtSbbF&UJq43RK2d*v;_vK>rz)KNY9PVReQCENRBJ^an~ z8pM*A-=;G83POdxW7%dN_!~_d~K_h)h0J$U&x&`EXU|Y4F49KQ;EPr z``}AL&c?qc!Qy$3qEUl1!f-Uw#Q8|Rc6hds41d92UN8#DjiF%Sc?IOBpQrCik)5X-HTnH_VKpdC@r z{pw^i7Rx4A5@;dFC$S5`KDUT%Ry1kaK%E#gjW@Z7=^lHp)#yvu%NPiJQcLP&B^{&~ zcI(rSs~L={B*oq|(=xrLJj#bSx=CD)dYH;qxv~!aCH_&KZIrht+9E`}_pzNqvAp{+ zUeU?6b?}eza_pL{1RrgKb&7+Ok;?5X(7J|#Wm5`)$8)LAj^6CCT713M0-vF-sLlpi zL#&@GdIYkD4B;1i+#GO8Mc|SaKpyI81eerkl^^287r-UOVWU=ihZSoe?-d~N#`$(p$vk3n6 zk>GYUunv*8vyIzFumJIQd7Tncf_?0oDV7{QFYRwzcj2zUwS5w&KXj}10$2E>M&!Wj z+;DOSjjz{pKDiMs+Y4z!zSdWcv3fAXcH$l6249{}?qJZWT}XrVXT<6*hb33zo0V@? z+<;Y1<6=fPtKqjq^>c_CH?8inSQL$|m<4Qi3;H0b&QP}_iCWSo!3KjXjx#qCUjHP& zi+{lJpZuyE{OTji7?Z|EZP3>*|C&mF4Dv>cklYEK+2jY%a%TE9ox35G+li9dI&)oT zk`mN+3S>#m#3(!o8QFGNo`%cSd$_XQj%d&B<(zN#a`k77`35T|#z3|ZI1DP%q@>nq z_z%6zc_ntuS^fyDst7-oj;Q>K?ghCkee#a?6Qh$pj_T%DigJ8a4w2kNQo03Fy19Nj z3-X7-N28a5lXuR@aftt<*b6zwgjifh(0-B&S$uJvL8fmaJ&xNEY4JbXPI+|=B4Vsx z{_WwvVg_)-ijD=@kv;}}S?AzQtJhL{pk2T?m>tqLnSX(izPnRY!0s!z{_HW2gEuFw z&8d$Djq;ea1e$e3Z2(kB=aakHE>7qIg{GUC+q(0hGetVjS>O%zd5saHkNHjeBDs-2 zRs{S3JBCYiEVJuD$pJTek{YdwE34z|Bqy9aM$BwWxb2%K=U!?1?NZxs`;WFalQ`p( zyh{J-e~mkByZ(?)YWuZld&JQgVDd*LoDK_)%*Q8L@4#9chpvD7t(~^7n#c#m5vK?m*ORSZ-!N_qn4>v z=SL4`3hKEV^h|51VDciGN~xtR6kIyVAm+k3|6O|3l04WX(TI`i^ts7$vG^yK)8tRS zZ4C~EWy>4BW#Kcg2wXd?okWbZf5Q z-*Y9G9BJbGEiPGUOk-?IhIhS?4J|qe$S);%!<;0!1WUM_pkF}lsf#3&-D82>3R7zK zT5>PIs+Pib<{~0dHUm5EA!dy!N>t@4j;cB=OQVHlwyod_zR^c zYYPkI!wU*e43F@nHARqPCXMn1g`AJHMq|wo!`0$y;d-wQnh#LqNI~D(#jCuqPACPHxBcB=C>(RoUzjVkWI)$B@2>m@G?~;gS~S1Ekd95)R4Mcl@G}KG#NR<7TY?z3S6Nsk2^}AZ@1m- z_#b@+AYqE4yo&_OB6Z%Mk1Q{QU%hZs;e5XoO%--{EcAu6Pu5?o@~#ka@jbtg^~*() z1&XMhWGOJZfU2D-&GKT^P@S?v-beMy>O%Pu$ZeYt`3v8$TKX)7=drSiX40rz-?m$p z%G+;ts0t&Ffa5W$o8WuisWDrYCLwms@1eJ2MJ?>HdmOZc!a@dpd}dhPr|pdBI+na1 z`4mUxed>0;iq?7aa%MQbO5HARQUKqw@Z+ems@qAviQ1844#+OjbxhlG=>iE{yg=vl zcYlGcbN>?7!S9A{I<*vjF1Wrap?lus*0fcGsJnF3H!K%^&wfo?p`gnr!@4Y0M=;oX z9J8%SU6?TZj&q@)Ubw|RL=H(j2`KdwY@@8n0{V0JaY~1VDP_w9%@LKq@F?}VCH~jO zNKX22LXPU_E0zBso9&Tm1HQN~sjTiEe4Rc)Yrc0(-f=v67UE~t z4M&+v$|HQO&VLe`c8mRxo=P5q!Plf#MVWhT#Q&+-Wpt5VMC2xjNUPeT-a|yTM;#O3{Dq^CgZnam;W1FGdFsC9mNtx#!PcZnv zakdNm=sc#FZDtC-K1$(=?YeUn+t;GMW7QOiZMon6TfXa-pe_t)^22UGw{ZOT2116^}-D)A*F(Skr^w!8?{p&#qB#qippdfD*bTWeUd1=kI@a&S%8up}FIoU3*58~mnn6P&$pFHSOo z`P$j7nRs_Eu5w)0oMFk;$q5~H{Zoz)R^;nHSn@h0I#a4k8YH^^|3 z0Qp6ZY`7!osic>Z2$V}&?8?(Y1EfO=+y|!+#RL99){B}hRWo8{4yzD7W;%HFMO7p9 z9g6RuUPvYg_;n%J|!SDVa_|9nB-*Zzv z)7cS9g`FBHu9HbxM{okgoB*`I7xU0w{FlB&ap)oONpJ#(;K@&h8W8`0?V*tso*#)p zjo`>fV!P91bVQ#Rf$f}eI(X^ALo@Ph;%^@zb;Vbxy=L+PUnso#UwRoC=pFLewviNQ zX8v{fKGeh?-GXv|=}eO?h-k8=_+!90B>8WzYA~&qEiC^r)(A1{#8~JBDV0hgiSWmE zZFFs{^i;%_|CCqS7*lNfj}X!3x{;W^^RSz|8fUSPY^{%aUrz`1lN6WH-{*oKpQf|g zIuib({oa?iPFK1roZ&fdmt+EkBkf;Ni<9Z#os%}FUE-P(0#1C(_i3m_t&e0mR}@2P zNMpgqc0z@oTMFA_CbtOik(>fQ+jG}fly9Gl)szrOM^2h&$qFT+Gc%pV&Jx$T;B{xI zr4al*6e1tdP8xaXTdp$?-zxA;(}6fZ$cJyO8tNCK7^UgJBji`)t{_=7Pi%K)Wv)|S zu5D_v-sqoQ0YCXJT~l;(GWw3H zy7jApEA|}UjYr#@{#FDfT{>s{l{vKU!_R-CW3ZK`4;*-D#pC^syS#f7&gs4g6`_MfkueY;L9&6Zm*;?%UlsY zKIyBhw^i0V>3&9iJt^jTUHqNIxpMwZ6`Q1#GI3+&CMnHViICDk7HATb-RFXnXX$Um z6zeu&hJAAuQC(0jfh-1|KEn*`8XNdE%cQ!J@3Oips4XjEm^6|-D#&2U1WV@K)_3@M zg1R8)h_YAF_wJgdo_F}Wy)x{`>wWX!FSA5|mlv#%uFqoHncnu~XRX%{-XL7yeSJ(2)E0+prWjDjyRTR z65<2(XBEO^Vnm|`e4wT`qOT$Ocgr%NZEr$(uqc64uY;D?`vxtqtC5!1-6@sVb)`IW zMS5lAOnDW+4=7L2wnsKn`8jPjW6r@??>?sP(ZJ%1#&QPt;bRu7+El&jy#?;5{j?XL zW6q4PjCU?R7Vk`OMP<_S0qP|F5M(O-OPj$QV)#))4)j&vlklImv_$&**UWd|2R| z=C4WCoD0s5rntj;$1+_3oxeJtC12$?U75c(d3Bj=DN-Y%r7F{cb*Radb(d8X32FR% zfo+cuynUMOh{6sLA8?+QbwY+P8~su!8)o5&{BAPayw#eI_!`6j`yxb))ClU?m>Zp3 z*VQ#Kp4ED%S7y{$%Y5^UOj9&0(WB|yFj33AjY+Rs3kKH+vwbqG|5!)^cOq8hTUO2R zPHEiUnKZ%gfiX82erzR*1hELb-p-_G__HCJ-qE*UpNAMkm@m&GN(niaCCF0h`9*OKzbPTLfdfwERdu3S)r67Wk&is`hh%bs>|9 zF|xp4jIq-CabmQ1GLhnq9IPPiX-#_wSO>IPJH=wJ^FLiy1iZ?aX)nEs@lg&dsod5_ zqYe{Oo%Pja(CS^8!>U$QhZ=DxFJmIQyA3!x!+-kA_-5vw=6fqVj&ew&LfP`eoRhJX zlg^q5&%lk;hBM)JETOzLVqx=*R{k@Y_fczt&jzYK=7`<9+Zy59f#2FA58$`l_W_kI z9{B@)GkzY@D$epH?9X+uKdC>UlJo+QI}}U&yg?y8w08H}y+09t^0f6^Uv_f+!P{4| zkXJ#^;8U+4=6mgbTKnnRuYPjVPhN%$upSaG0yzd#(q;X|Pb2dVI2=fib2?xr&J@QY zde{a3Cu={yhAAO=Q+`?}g%#2qik~gepGmf|#QgEv_i37(DL-u=^{qM|Oh4`bSH}fj zMAUl@5>tA51*`hT;Tr1W0?QN= zpi7=4=6#H{syt&$48XfrVc`&hqw0 zil46iBkdhvvR!;kGOT-X#sss71HsAFlZ~b~Tze&Ijwe zbZY$%KPdk)*r9!vM6H{m>!BZ7NOGs(oxm()N=fc1zXf9hIjKjocm^e85)!=CXd$Jd z-T+29mrDxbeO0jBI3ILOAcnk{Czvqa&Ed$@YbMS8P4Ki{4ybUtN;*@ zf*?+TllkM^u>ON(oWg7WA#CXsHl{w#P3Jg;jY3BKJ6Puy#9#juem#MI(z*H2etDz( zxe9NDSGj^T?({01u+3@wvv&(lyI`AQj8nmt=M{iVckpwh_vNs#JtNsS`efcDfyP{} zISko-dIn!x*xPN;Rii8YsiKAw1Bk` zyfcjwCY`+@j-=njL`qi3^#^~>fG~vLoKnI9(4l4SR7Uz$!Ukh}fE{zU(rt}W`MzMSvWE$6q8eMw5R3}<%ECWFeNn?0M8$lsMk+N?4_FY9>P z!*QU^{jGYDr)%>}1>%~n zW{3gzdf0bH4s8H8ZxG@FfwNEQJ~IB1uO#&8#Mx|EQi?X5AQ>94)dSz82(g~mvo4ZH z_NVFpWB|$}Bwicls9cch9qx&#r(ERABd6woxfOT~UCzLQLaq z@r{i6LLG?JhS?ep9B};iyI5h-|Im9}9mnY(FkjYFQO%~Ut_5kkpL>VNVTI*$a zyqDoIuaQQxJ`7K1H~E;?-8z?NMK^4K5e)+S$MBFqy~40QF6X}C2f447aWW5m0 zYi+j|1&{nL$ zGs{`>6s}+6Y6U0z8+>1d`w2Uxsp18PQ|570AvRmx4xGCnQCGg^I(oK`75nQo@VY4Q zReR)?hsdinE!OPe#Z{zbtNkscU>Xi-ULiUFf zK@mqL2l(7;-{xWU&`FoX6+=Ib6%j8cAb!p{f3&!p-=KRY<#jT*2G&S}pcln;!Y=E- zhEg!^cJL|APCmjbtV&rCC-v|Bc8mT2MBgYDas>u<79U+obk%y!@rkb4>wfLISo1h} zonNy0W!lG*7w3TEox`*rS+WoJM*4e=JJ9e>1LmW@es+4mwotIyzD&w z`qs#MTRcqr!{lE))BF3?RA0qpU=oH7N#?zXE*~MLI-k^M3w`_oFV0GZ#+vc})VQFYnLCEFN&-V9 zGodQgDch5}O4L8ibB*`gV-eSb>;5SuB$L5!Pw29hN2r}K8%Use;a@)gPFY{v9A=)Z z{Yj6ks|z;r)Hh*2`izdxhi|iF@P9xP;-X_l#|{F_(EWJs!2MR-4`WTKeG}%|-kNNAhWWdkd2V8a*qQMh&vW z!b`3PK2XH}GAw;rUu>TjQuD`f77oE0B7xV=D^n?^%*B}0xhd67{2N9L!XkQ}ODTA# z|AJ}P2%9WxW-L)xpbDQm@}E%2k|EJ*m3i}W6T$Pv`xfTL0$K^WbU>FLhAsxst(>Ct z=ubze^e(1ny_FSXyM9*rBSh7wt&;g^tcUejuQKmKNNn@aE89?WByzS&Ijti~Zyt0% zOGX%r3U42g-p(75`ovc<64S+|zvy0V{gIO~+$}s;9oxed@2jr0RmX*g8~)y~Dl{UFLqxqB(lA%O2QiLWi^u&IcIx@kest>O%ubCH z-Btt3e|eH(d1Yq@QI$sUNw?-#ASML$n(ktYn5J&N1uOg+SlzHKn><<07VCkqeW~vc zh(Zx(h!)dUoZu7ni@e4v7M2Xp^PlUp;MvFd6I}n`=X=Vn;Py%$wVoUTpJk3S#f!03 zr}!`RS)ju2wZ&EC>A%#|lf6{F*se$yJj$DQJ5KP*J-NbiDc`Z7Z@^d5m@hYgHw}Cp z3jHoEjK7}3Jg-?Ap8IrPp)}pg(6vxpm*9;vMhSP@*ga?TWmRA6qdaAmiS>8$OMsg> ze_tKbi+4$V@QVwlE2%uI=i2Y*i#&x@Trb=7wO$RJ4{un^Sf-So9KB)r=R-`-?20Vs z&DO%|nC|Qqu%`%*COo2}1PW7OR* z;QtHN;N@EoL#po%;Ux6HRElv_f69Hr(}1W|h|_U6&Z+2pMZb?P#?DkTsdK)`lPqPu ztOvc97wLOJ&lLCauq*78b%lZzlaPfP?!FdQYlwyt51c{U-hqqah#p+Dk0{Ov92i_V zxMHa4CB)C;TDe}Wa0I8n-e#|_Q8vpw3*FSF=kM@x%JJSRltD*OAe4X$NrPq|Qgklca*r!#WR^Em)8tK__H-`RFIUm+N)4^q-B5>f)y@o780d$~Og_b}=r$Bzr z$OX1Q>qC6wqZVkRCxe?VCDE{lR@_dMJgFQG&&CwTf_?c*!;oe zD+Z?rC%GX@?ubM@YbJ0HxcGekew@AWo2pHAy?4KBqg}<(U-90TUANiGyqoO#ikGV7 zHWiC^Hu^?xd%jA=JrBrZ6m@piw$Q8cCfSs1nJq?qy7HNdXR7M#9{X+Jhv1RlMz#8- zreJW^$pm+^{cH{fGfz@)vxd>`8K~tKlz`ehN`2f3a^QP58LS^wzeL}# zUBTcfSclJtE=?tUSw9MC>QVRTjZ~X_bnR#Z3~P3PdcA&>ayZwF?#Y@Y+wfd93Qf)6 ziqYa6GF*vhX?@V_QysHyl= zZC<@1Yk{!FChuO(KTp^2V8-Z89wV&yh$-#`c^faLc(-OT#jjZ3UAB~6Y|Cd~bo|77 zvm^X#@0DM}_{Ehhwmn$OS>$`4w~oPUiLeLI2( zf8fftTfZJ!@95@le70+2qKlBWpHubLi7CPh9cu&?|o!QIx>`vF}am{|wbS#sLQ>F0LBT z_pN1$mG%An^RRteu(F#sdCK+kSJHKZ+M9`ConC?YZ&<1Cl;KQfOPi z%A1aO<$Dv;X4@9H^_#b5%%s{p+cpE~=1AL-&4sM0WPvT(ttt*fV5q2dJnJ!`mCHq{ zlPL4YyO%&89QV^us0^~SFZ*G4i~V^-V971NAmlyVeYh&{yAk)7@cl(xui$za*Kcs` z$MsuWui||p>IY}#hh8Ly-ZNMp&)SBj6QZuX8ivcJR;Y=QNv1&KBQY{JA7p zg^C?(cV5F3ziOQtsuy$b-)iczHY`)J3vGIK)BXGI*W04lllLppn|hn9DfhnbeZ6nr zebU$al(zXSk0_71TRmI5VA&gm+{x@KTV=M>TlH)dzRGQz92xG6lA)RJX?V^oIlL7T z2lk&^8H}1{-vZm8wyN1pjs><__iQO8g#)y_Wg)(J9Jz>Ou-^*;H?qc+0qgePAi*@?2NTut> zeUJZH&vc>pXvIom@;H8O@47a_LZzvW3ncsJ{+B&$!AAd>=Y*$&FV4Q{=+df*H6QY4 zR>#ddzUIgL$<;W$Sse8&tSDP`mVbg*^Ka^vkfn~gqi`P52~P_s$T`kB?AjacpntG) z%7+Rn`%(^)I(vm)FW&4a|5!fnAS`npvYs9O`dGt9dr}UN!qrcEva6oqUvy-xJg5H~ zzg52&Wv+AIWS@glohVf{xXxo-^{Vx&;eJnCM%tQgznI?dhaA*U>#ik+@QxGhJMHsmxVl)o)M^C&^ub^?f?zJDT1&?K*sdgd{ zi#(y=KSH74pU&$J?mN$tu8*m_rx4WKh2X;%xm2}3e?@-9y>>&X7t(y}E0ZMKHJpR* zAK)}i`S86K`qqvywW6$GkUyR7!g(2{?bga=_t=ks@8%GNn5LQz9=Tu!y%^&cR-{y< z;0)uGm53+ne$s8O=H{EL5xvV|uJ#nU_0z#WTu2ZTSJJlKXQy+f7_dhA%-%AbQ%hS( zJycDgB4xf=fFu;W3oZEBd3x^kgCXce5?HbhZCQ_dHST%1W}#gaCpJEg0a^$%d5dIl&bq99u*Wv`>5aMd%-1$ImNQ;xrY2HxqpCJzCY|*or z;YCsr3Axk`oJtP;pK;r|Jjgj^A>|4SINy8iCLynwfP$!)mN}o|UtCvz@D|i{4X)QP zhc3hV=gHZUKg&Nt6v|x^l;6R4N`kRfYFn7M4Rf|yV{Bkr;%w=!DR8!0Q>?_>mU!~q z{}*pd+Yen-`jh+RO`_ufe2KBK@RjYE3=-H4}-f6mxw1h@Z!6tQ*xh_Ua6PEtQ1}0Bas=k9P z1Vzs*VHQ8dlf02(e(yYJ53ySuCFW;WzF}HTdiA8~K9tI|6Z3xX2o|Zd!P7H50;Fda zAvW-tR2tJsqmF=2y_K2!IAE+9`7()gwOYlai-oo-zIUr#hV!+VCJGU0iw(Sf`Xe)o zr!^!tu>UlTi-ia&W~^uUebDlWKUUDWx@T6^EBqweSR&!g?aNL0DUdWTG=Ivb+czYibg#rJ%{ja zmcQTgoX3V=YX3UVCg~kK+dZ?TcY-gi>s9z&xSV@nhxmrb%uU;)65qlbMAA{T5@&TOe<7ISS}A2(mom;`(BO^!BwL&;|GBi<)FddwaUP$$M>eko64$VKCdfHeM{3kqP zh%Ol8--oDt9oAX?I(Wi%S~dP0L<*+fCD|KksjT17lh&FJ-ZT!ec)2DTA@;*TW-oLF zi}9w7rG1_K?4U)w1$^8lT#I10{Z%nbdT~*?ApW-Y|1pf`cH^GbNqQO69sHx9I*Ezw zJsY*9JWfIKqWo$5APw(IYcU{p<`L@Q9rXubMQEaD zyX&TDyhQ4y4~&oXshSS2`RWz2jZfR*8;3Dq42E?p;ipgsoIDzGR@T`y(7X~KB6@G6 zJi&vaW7So#%DCUY-&1F&^im)Bcr{b91N4&BWp$QU-ebqf;jk89U|(KmXEJr-l9m79 zy?Ww(kla>73YGp_tC_v85amnW)eOAlX-eow2j^66M9c@Fm~G;kx7uAIChoaHO2=ogtjb@R@$D21UPs(uL zXuWY+<~ryrx~ayZ*ZT1gyO){6wz04Q+-ZGfi1MP^s)G^@a5NYS2`czf|A8d}_Wj8Z z;1i0A(gCmG-iu43XR&{!BOUbXSaE}wLcyGi6pFy1#IcnSDIXxfxh)&}W$t zDq)Apt)bx8!1#d!$t#mxLe+it6E&yS$aY5W%-Z?ze%kVH^%+{OZTU{7^}3x=!fm!v zVXf_L2iLd3E^l3=e|V>?HC>D6)_M50!Lh=|?H$p#?!3)mg4}yi%CC5>d7~q1XV(qC z&@1;V8>|i68Uol8YC2fbgNfOXOLu@V$O1j5*ua-(xm4)d@U-WYOq2!UCggz|&Qthj z&Om?uFH=xMTCFBfw?%%U3v zoELHxx0vJw{o(n^rqK8ukL*ub#aMQbe^5PMV8e0t6%HIH37F3E73mR1Sp?r;(hJQj z-nAg+!&x>kcs6DQ>1MFomSGoV1FaK~xk=Q{(GzSyKMfg$dlOFdpjvb_=qz=Wy7JpK zzpP<;&F%s>34D8jT1DyFSq#{8sMshYH$*~?kAA3@`oiQgRhTi~lWR=Q$LxY9G zg0F{w$<5|#Vx98mlmt17Mm!jNmvOAyZn|-@^R%3*4W|qqL6>oV;$O*B%U}UAWJ#z)9H}U!;pO9j`eD z{-1-L#5rn@k*D@4L1&W8>@`lSCPPv0sDH5j{dzhMkE5*AnR;l%Q0^#pY-5tUf=a#& z(QY2|RkAOEjfw7n+NG}0pl|pZwNvBLtk}MPvwaJ+NBb~py+DZ{;qq3Z*ADk30d=W8^T5w0!v57TK0I-H)gfrQKW@k|+a&Xn;s@_!M*l1W_u zo&N(Vzu|lN7a~8k)G3|Ge=qX)BJZ33YyJT#zvX-RlV|dO+Zt}eBILgjdA3{RR^uLnQ`&z>N@-EWe@L%a){9gLIr1bqW>0d+I94S2;*mRN7(upe)!E3l{5<#0Y z0q%5yYrH1gLjrSwg9JZj9pY(kpqvgki)@Q~ol(g407Jp%KGFvd^g#MWEo>&0&{Kwj zpNH6ha8aAixk-AM=HE!`#oDPQkW)zOnsaeZIr^cahDLY!8Tg3FW}KITZ<}!i4n(bp z5_THpz$+DG$9^-MUaZ&oZ{6j0it1LF0VI{WFhx#TNS+_r3PK+KsiBOPjb-+JGYl+z@=&lZM0v$O zU^l$Xk5Rs7dYS>pOJ*nfw62||Y65F8#A)k?U15^PwNWMPs@1L|M&6R-UIY1$s-(qw zR*JCHFY!lTJSgEmv?JV#lyEE3V?`}m5#fxew0y4>)6*)ax*`*LIa#C(J84#-Dpt^+H)i7zEMHPn+?>Q3I+Yt zz771C%)?^`9&o5!bnSQ75L2>8kBDgU&s3HM@_tP;tI{O#;aHXP8(Fd+^SK^le2*RW zA^us;ZbYBH$&;Bvt>!@61%xx}K}Q7XUYkHPI+*D zI(B@-7(mZb8`O-A=o3-aLCZRK+PIN1FxH?yYF4DM1^OKZUMSuZv?O|}g$z=3BOEmE8<=Ftq;l#X54TeXI+(71Drcb_Pbl~d_FF?e#clNmQeCMP+fkQLlj4Fr z7tzAHVCRwy*~C=v%M0?unDt#4|%k%Uij0z?}>1AS!I|XY(RC26%ANtVaXD^zy2UM1D`cXMvO|xJFc#( zzN^Z%9Ak^xnZVV+KLdIh9c$_NLp<-tGi-VU^Oi`Vp>7&9{kkm!#^~|}SVfw*gmSfb zj>0pGNZ=TOz%XzM>%$IzDpFKBpR8+0--5V~wb&0Hx)jQ04ug9bq|_$e=Qm(p1rE$! zktob|K5d^3IaMk!U4MnX;Rew)C5oei|RlM-Wy(4SFvNy!QxbUa+rwEn4eF-ljO81<4jKbWs zvZ?Bk%$Mx4=AGboeB^Pb$If}S+TW~UTmFT!Qsk|Vu1H0^`CFiQH$xXh`~h*ND{m)_ z-k}wBCH#e4+@Ohhj?Yob}5MqvHL}G0$x~(FPA9L(N|5quwZs zd__1N;2Q<|xtH!w;@$X9=~Cr+0`EwrXFlfTttaa%84KkzsCMZMXghDIl6OF3<4G1D zF>FV#D4G|r8=VU^5jLJ{faYGNeS|3Bv-|o*1$uVXNjI#NH`-$mw}TvM7v&uacy{$p zcgR?AdSK2?vx#yT2>K7X_Y24%A z5?SCLoT*WUo%&pG^aP9erXAM8!!r0jCLtPLt;dA^QUsKc3}Wy0&{Vz?kfK<2S_PzH zyC{Y*O$p-d$^@xwCAirI0*zcu5L4#KX&w5OKFI=Cp&oe7h@3$oDh!;cGO%KVfr!MQ zhVE1C{P&uT_Bc;2&Pt=_lkrp9%Eu&L?sLS#vS2>Zd6f=cZotfvS8>_#J6g_?C|n>6=t!w#KJ|eZ*Ha%=|MnnmMetA0ZnMl~!g>Dqjd|1##^Ja&#d_srU%rz()#l zn=C!U8tsb`t}4$$Eu2&f5xMf1H|9G0Ee6%D~IKq*}ab3f~ z3Hpwd_m7+lg-+@$jpJIpCzc1KZ(Mo)xS_mnoDB4jaOIDSQRKCWDDvV2PRPTxdjkHz zV>)thA{FI{(91Jq^%$}Ak0=Py5c=EDB2OUwu?!-tF^2bL#IQq7(-Ix(KwieM4QY0a zOYaOb?=0*nv22sx>2wWJI{KZ$M)O?$Ml4O^ahC7C$Nk_tQ?`Euu*euoe=Mt6Jq8}R z1eD5{O4lI4M5DgZa#cUbmx(&)drsGQoYtqcY!@%r$^J)~S6?YpPDm0{)<0tYc>jpX z&>-hfhc;Y3gZ4}1sbe}r}SkNgsIpcHj^P)=!i!+1UB z$M@6x9N&qh72|O2SSk7*t6ifat>aN5=0~7aO1}Z-d#I1rLC0Mt)n}<5rO&8eM#zr% zFbvfgOEH#M8sfw6FT++nhW^wL%!eq<1r}q5{%S-17UXNX+@Fj=9Qk!&Kk7j_23qdb z(%e%bFHSn8WqeG_plyvBcz=x1?Z&(d&$Y{C5Wt0u(p;r?I)CZhz4CpaWgKl7(HTDZ z-aKuQ%GBw$k6kWLf`P1#MSby@bFr9nGR&`NQ*nPZ?5AR+_F1-t+x>s_#Sik+JhTjA zn8}BBUWSqA8vd(4Xj`;~zAJr+btTo8^2AGD&~LOn^dCd}Lt2|;hcte~(1bQ(E=&Co zo)?6+TethW_Wd7auN-*k3mNdqB8<^xJc4q%XdM){P@I#dD<3VQ>xpSRM&HrCGFTep z(Ka-vKXyk^f3(c91M?u<&cIdq$L-7d#_hFz<8)q9yra;y9t-#JwXqi8O5lg4angvf zZ$Mu+^vm)rkBukP_si(Kkz>62{t-GEMdw9*|A?u+e+TA7m%`9`EKj$0T#4_*(mXCB zt4HQy-CBH)jRqb*II*;noFx5?o)tJAjDC-Y~zHx2CW1|L3=QwM4Tr}wV$5hDw z6w=Z=i|5t&4UT6Fu#9MthrXBV`bU(8{*gep*fx`ch?~ZGCJ!Qc2TQkJ7v_g*rj&I)(g%tQk8U3caNy zYewYt{jq4b>?FQ-pu7hj2=CdGN#OTp);n9>Kf<^HKfcRR55?~a)WxAZ&Vu<--ZOqH zt*csEA8$=o;5YCA?OTcyzNOFAjpN_^;Qi(D>A0Q5Hwr)94-CK&q`YPP>zOh!N8Y+z z*2qj*|NKE&bk0I#7v4v7JLFi06kjuRzDDWTQJo=Xl+B?yW;Mnnyyoeh&TZhOB)YHA zc}Q^$=Du`iW^W&ZI^hJ1JNCO1m*KtKAMa3@X@3A_+8>wUF8N>J{_PChzxe^&fo1u} zX?b){rG5MyEfZy3>4)l;@xqyLr1SL&njd4|CzaPA&CkHLgA=sw6q=4abmbjgV^+*L z-q1hR@IQ3i!|M$D&G>w>4ebR^rsIe2GGhZyPu($Ejkt{Q&xyB&i8GaRzIHwnc$7c6{fsPB=W%u~g79 zQ1`!47o8)tE(Y~%LwyUc)HO4v?$&X}t-zkpI?f><3mn4eJ{VKzwv7NzY2HC~kVFRX z9c8md5oKvdkJI|`Ov_Io4WslfwE?h`^2YH?3UZRRfw4RQTv-jc!uWu~$e>S1`Ge#2 zc`2OEfbpkk z&8q81PN3ba`r0uw@Z&hv`34d$p8yY1IGSe4roV{}+R#OBR!obpP^1h+%cx~{z@7@Qonutm6>mU!MAJ#>-YrW9OxXQbN3DD zTlE-c>63#VlM~$)lBaI9z#*w|_^6GV>ZeZ_ti`*o7kyfkQCdQ#3WaMgE&N#+vu&8AF=uO!> zMwx+aqjOJfAJq*!HXbKFhPi#s7~R8Q_M{>8z$ewM3;G?%FodNaLTXY>LQJ2CJ#+zAmTxROH?+0~!Mdvc=66lLO$4pV9dBYS9dm<}Y6?|*J5i1YG%@AoCYy7%_2x>cvDPMtb+>eM;qm^8RPrruFsJVXDtj6zEc?|kOrRm0?e~Uft%`}W4CpF zGuTFZ5YOvwQ}F*?;D1H=PT@x_c=t+Vv&m$C+&b>Obno&G`NGoF&GAFIuL5q7|4=1DTP6^Z$3+)Q2{tIT3xO z&?e5@)teeW$DeXdSPWiuye5nlLQK&w2f4-mEp{d(!^mM0a=XZwr!f+gwO=)UscXn%Q zUzCYQSVL{mhO#@p?AoMj>ujsU*aZ)-0$gHSNr2L@wsqaV8EiB9o_|sk5cAQ$`Rgzy z+B$_cec%5cG+u@35dm!TqTYivAN8hh zXw2@Sb_HGKoolboH4Bg@jVCJSbtV251rMn$uAOU!+JxqKD&J0RW5xKX^?;sMbf%(? z$2>c`sXl7w`c55iiSx9f?rohjslIJtd{VR9F@E#`ngeM3fX3_ZMZDe|9s?S{Li5{L zyyNjb=EBoj*Sb!fXI&@Z@?y$s5C)+wE5O>;bW<6(QXcHq&a;E~t+cJ~)-IY;QwP)M zgT}K#98aKpFz?Z~qH$9|08XzW+CK8HU4-AS0N;6KEwiTkrfbSvqY~Iz_;p}b59TmuBoXarx)UX&Y^F^j%IyF*-~H+O&@u}owKo#;gjc-Ky1zo7DUgXeU#)~(%9F}UZi>{dJXcN(1QyJtn$26QL~_ z8V4GFI;haLn-w010Vcu+(cH#i8yvGe=sNIvsYtvW#wE=SfR$mMVAiFB^WPFVvWC_+ zFPy|WN}2yKMn0r6X>1am`ZLNM;)i;=F}HoO8FSk<@CEF4)Jd7!6dH^?XxwlZN7yb> z?tjOf#ue!QX=ZLCURB{s*8q2v_QANI{yl|u9O_>*QX=MJd>8IR8mq)-T|!@K%hv?7 z82>83$FW$@RosoMyCU$-^Qb4`JM}r`&5(zHK9>f^1odwn${{>f=s4nNUjBv?*!>8~ zxRP%UP@B{D)Ruyi@VRza24IM0e;SmJ?Ko*JUjx2o(@7KB)8JeKT$|rT^skoc1-wjS zYXT#IEj=R`#;jXTa5ZgRGtjpRU94H%ZN%LAD$>*ZSd6w{ z?A9)8&D!olJlEzoof`ORb08Y@Y~byWyBNEzE4uB=F4o=_n~!+zY)K$0f4$NU)b`J! zUFd#4>NV>?c+E}i5S_CrptBNP1ns82tX1Zi4>fp4bAlG{soqeB@oimHwt%uc7*8)D zZ;s>-`E8v*41FBRAzCvTuo2$ST7~jBO7x~?VE{a2?90G^tCQfqwdOMxoLoB9!TBfD>&bPK=_n{F=7Jz z&P!pLq895jLpfy5W=}V76u}!V=mJgYHkZH9Eg4_vPBVi)qc%i6n6m-T4c!wlZlY!M zcM#9OYx;(Gul~-R-O-7VEtv~|H!sQ)Fi#ngmxwX-KY&esh;SYBtR4920nQH2GrAh! zh;?H?+p$JPb5eNDS)Z!oS`X+7&zO4%qE;~49RMFbCIN83?m zc|e>0LO0fSi9z5GkG7yTa3Vii&u9rQ&_K`~{j7OwlzC?>#Q{gCZ%K|OLY^W*Rw8y_ zuC;FJo=@@S?cG+aEfqL`KN5b^9E!C?q8a6;;d>L_<)dZce%vP60K7MVH|O(X2uBim^U6-4a}(%kEpTl! z+J0@f*}Ah^Kz_vEoF9alXu1J7Nb`^j^_+{a>5FgU6z_dD$X zfR4~=rvMEX>_b}q75e&$>?GZlnmsnytR<`caX3qxE;*~rRo+RmYm8Kz@>A%89i|pVpx>Z95+hqA9bo+X`9fP^!8sErYha1N1;43(gw{#WpPfv; zq#UquMR|-t%MV8g?ujk_d@!$v23Q8=6?G&Y{@5(AG5=Gj9o9^={xfb}igkL6Ex%y$ zHTk|cph`aN&r|Z9J!m`Y!gm}yh){!k543Y{J^{;110g#gh(5xb;{oFY=|bpOKL;%{ z5&QMr(Vs%OJ+r;FT4?!5nzGq%uYhjI0Q9+7=1IQ*t&k#UsdPBrM4lUze1~0=FZ8)G zM1F+`#yv|ja}K2z*TOQjtzv;`r(>!4M!7Z> z&bH-CmJRF%d1TQf`EGNb9A_RcUoxl3wJAQ9Bb$n{AhXJp2I$kQJ-MMkkZI4FOI>6`56_0a z7xV~8dno~@#=NuXn|JTS`5t6;ZCvSKT+{y%m*{F3jC=ArabFL{-Fcn3*y?b3wqL|? z@Ojf(VR8+GPC<_>4RI>~3+e0{_e2I);vL|E2Eqq8XGD7DbIYEGH7~LcOLq50!Iuv6 zW8Q!z0Z?<;FxZItGXFZ+NEV{~tK`Cxwu&pE$IshJ)!V+SFhgqw+8It&vvIrCsdY|q zW;&P4wJa)_a`|IR38(e6nRK4ik<9$2L%V$ylU#2=lQL3Htv2rCtd(qO^&IW1t^}#N zP*bPbKGjv4Fx|;=&ilDmU9*Vug5SYY$>@>|W~*~&#XSyl>QomGYy3uUmQ!$Mx}t*T z`&BLQ#D{YcInEq8xpb;a>xG_MN^hwAqH6n1t{j&JegRZll4Nb`2W)~%s_1m_<6mHn zHty@;k_s07Z%!(LpYeZ%_MNoAPN8wU%KH<%D5xNVeAAiM^uvU)V7JFvzSC&tE70eqj6E9yUe)~1?iPwq887ied*TVbeV7hDJeSR?A z5WLr>fB!n^pZ$MHzvnvXANh~;)V`|gz*{|-j^YM_@}QEUwKXZy+e8DyG$FCDV^_qCgb>hcg6K|{mKlC5?HwN(#Kr*WT_2Mmv*9^uNT_^v9 zYx4i?b>d^LiQjgec-=Me+piPPT@&AWo%o9dKaZb>uM_{nHSyQ0-zmhaSTu{oxS_q< zp&`r5ZJk5-5QVs*u?u{~7{)?Smg;FoFhu@66(C#@$aPw@L$L;HK+&Gkchdl;v{P5l?Vrv6kHddFJQNHfMyoip0o|#1O#wasJWFxz^#*y75uiMj4 zdC1CM__gC(EJt2WuKU_NP(MA<2g+j&`eZ1d^@IHvEFXKSXRyp*`Ooz8iNScR9Xo?6 z&{)WYgQ~qJ)nAdEuS$kK56S7Wc@eh&cDC~7hJI5Zo&O!lK*yKZEfZQ0@h+& zKK1Eh$O@RgAh_^CLGYFfSU+^J+GPQ4+czgTtcxw+?X_*6o-s+)K6KFkU1G^fdd3TWc~Tj zqrjR#S<3<*TDL-vsXGaIWQ|2y^Qr*#XX{s3L*Pz0@>K|HPb1cTX25SH9K{|s)`w9>`b# zTR!%U?M_d39LXagQ^UHelVp~Vmx$kSwEhP?)TWdk z>)O*jD(wG_sm1=^D(q_&1_*D%vhn$f+>{4=%t>-OrtBe68>s;2!_%NsL-|4WO>1t_ z`yx55fy#tDWD(#XxIX~g)DQOpwl^W?d6T2PQS^tA*178gf4YeH+O7DeqN@_$kbLiU zyc27@cz0XZ&GgQ?A>gL(=}h2GnnTH@Eo9g-rzCTajqfR8_ zq_oc??lj(!zS9V_TLb!%#@Mm5Snq=OyYX*7&8Pulesl)7jQv876R?&;j_X8UT1j@c zpo?^{R$$zTY@O169QxQn{foWKg&xR3Q8pBM&gh+Ooz0>aGM1+9DK#4cnwsZijy>F^ zK|IOjXkS%Z`<#3TY3=3cTeROwJX3rl?qfl` z-{W4tkE`9VZ}N)u`_$ZuF2oPVKHRYKjy1!z$QyL?OAvxL)HS!sJ&&!oEq`LYOGFFmfF9Ysu1r9>ixCgL)NHWI==$_yV+m|$6BHEY8 zI%VH$QJ2vQnK1eY`ad5IeNS>x5qUfa`m+|eLhY~@cg&TiHJI-pSO4-I?dY8EUJ1!oP)GfG-wp_8#YKdj&9li1F1$?L#sve*ULjqX0kV z%;#vniotgaF@Eb*IJexfMv(zRS_0j})o_K4aarER3FT{yUw~#|oSc?VklYIEWWd1k z=PUCm(PfOa4@s^XHIV$YAhk?{@P%TfQGcqX{1%mdfLkuNJc zfWcV=_ss#CJJCL!#A{$I>8TFL^TWSS!QL0)&)U5wKe+aL&^DrD+o}AT!Fsf<4-lSq zC@|mBg|^nKP#2;vaj1{B7V`kcKg~(uaeYe{?H6i6<7rM4Fs?Z^q6>N=i8Lo~Qg{u_ z%jIi9$8G`tut8SF*8a7Ddnz^sCNEx#xpj5G0NSAip5|k&BALE2&M?1_{zDPoi85%8 zyuN!e;G#LkuE5vUbpY@)&=DHzDDP7hbfpPDsB9I+17Q4;bWS0^JWccUceoSoh5NcZ zFw_sb&<`K5o!uW0yyamzGvVQJDyN+Gm%{YP^&jo0;9tQfz`ung*M5%r>>+%!5OYnv zh;u3V*!xEvIQB>v^k%VlB4h6)tWPlp=`=?0QXR`=61z_it@P&@f`3b zpOMUUZ9s$H^gapqA$+3W@%ViR^{N1;@evpeD{S~{wxz4!Inj3|)O3YTpm31#sbux` zvpGZ`xuv|HEU(~$WroP z=4g0VVQHfI4r!4)J6rTE!3m+|c)|&xG^07CQ12u;VsOv%uJy2I9|bRy%s;xbb|a_Z zzqM4eF*-m}2 z*C$tZ-8U8T8SiXJrjGT>@48|V-*J*e>Y{v;37*+b9M#>ARS7&n2{x7aQoh0m7p zVOt^0|7ZDSq%v16fQ^`D6W98Zb4gW)$?SXywm7)DS2hYZ_{eJ%8ef2=6QPbyCz)M8 zhWgLJ25NJPt0J+@xxkbyb9l=d8{xSy6_!V$4^NeT44pn_c5%%%QwmO?{uJs&yD;Ad zoF`@taj?wNXww`G*Bv$YuuT22Cvo;E3*UWp?j@X~DoR4m38~I^U95RQ;(Jb({gCfj z(*ubcPr#eBS@cA^=D4)udDQ&h@RtG~IIx?kw`9S;z$(~4f!AznM-oo>dqnu`Tn>+K zIM-RnwFvcZP(2#kTuZ8j=2%Fi%s44$RG^Lo)U4&l&}P8RT2`7Y3fyY}cf2o07GRtB zmk=9{S(MXSKf>pEo6;JEiRGqOoMy6V)52Q)iRc{I+NRnsK`wea59E0dc{eLPtn>ZZ z^j6}I6R&N|PoGq{Yb6JZ988AK9mVcRaL@L3u0B%wcw^#RjieP>94tL#s*duozz`V} z$wv4Ql#&_?sc=el&=OM=!6)X&m^d$46cU`TEGNsTwHg0n@WCZ#J8RSX?#||0;9W;s z^x=JZ6)mv$QaidAW1-ffPucv%n%;RaI5I994RpN)%c=P8Zu>&)u_)yV%Xuk(Lb7XhyGm-Znf$eB z-!bxP{5zZi&Ge01KB9DrbIkG%_~(Rux!Lh}HX-T%_YHfLMaJB2T;Y}+WN z3Wcw%OkJL(9uYOt#l}Yas$7eJWn{H^AoL&j9_FTxbnk(`<7KW?CpUQ+YGrYyEKis6Cpld&EgkMmU2c)&rMB^cxx#62 zM%8esOP!M>+B>?(mWdsj4;FwQR@&24W|}t~XJ7-B&%@42tZPJx>bJUv0=EFK7OZZi zo2&cS4X;q}^z>8cpRlsc9R!{oyAnFtC#9>LEJKvZ(k6|pPcN&BtIg^DVf{uoW`0;m6RE=V0y0 zqS|@8F-q!PyrZz5U0@?Bcjt3?>cSE8jj&iuyATZaP}pdkcYJdl+f~WN;>6*EJ0$qz z!6{{(e21j*&5=0Yhp>g10IS&a1+4pG&nHrX!VD>FQR5uDy5(Z1tDl4YccD=`mv0`qQ}8}l84KG}DjzRXE8c&iFZ5$S zdCPVW_UW@p;kNMK|~)42YOZzq(X~(iqO92lu?x zo;OcZmk0k_BHXsTTrIdpHK?=r!&X?ZRmtP#3aKOEC*>LYV+pC%5!w9VoVm}~)pB+b ze2c-N53I~s*O~5f+&@8GKe|Nijl`+qRGcP#>arSbn08Kt|K=3s#4=r%JJRyh4P7qQ z@Un}mce=<|RH{quO?p#k$dkk^KZUkmq3^Wk5;DcZBT6;fpR#Yq=+by~uU`!Pcb^Kd z*IZ&5r54VqX;PPHydPDJ+L?-$;e36e>VAttA0I3a}jklP5WL2=~wF z8Da4;p7z-Q(*W$m829!c#kzSBQJC8s?2p=Fg@VD(I)tY&*Ad!sZ_~) z#w44@$L-+qc2$mbEn;^r%7f?ch#D$Q1bsHl`_EEn^DXGpT92DJ# z8nRs^v}+X)0n6sW_7mvHCkSqZo*2ubBqJ=EXry~8*0=L-X1d6ulFDPSkgr{$iGRFI zGZSpsHV=eW4yanPVP%Zk@zcKW+~%DdZpYxBwV?3^;MLt0vbPWwtm(n&`ntOr;+I@ z%8JDnEdLZ+Lv`Z3f;4%C$rh%<}L&50Nz}2vuUg2m1aRK}W*uUxkdq;=m3b={cc!8QdcP9yZ|PLSpU8%a`JK*c)~MRfH?1h<8adcRxHF)J z|77(J-*_!XC~L4ts#Xr?-q#Okcc>&Qc3j! zu8%9%M>_99DRG^;rnXAW4+CCc@#&PqHl?rd|xdrnhSF!>yD=Xmy7GXV#< z{jtz+m=7x?g)&|9<#JqaRIbxx87%|<^VdLJirgl3mf$);xsK~B#&eDW$IsBt!n>4C zx{m6!<0@S(|DR_E%WoNrRgD$?N>%cWWCKN>fh(t6weYbjAV=pfYBm}9^vZO-AWy>e zN9B56Hvb=MXv&_9FZdVGqJ{2J!)nt7EY0MPt6LA{ak9Ggn>-Wra#St4 zRs(ctfWOzos9K=0lWuY?XRx_?`Qz{ZL>SoupZE1#-Jb71!mqc#*EN}c(Z0V&8x_fP zohAPcSDSLZ31ceuH!0FKN8y)+`-eiomj(Ns4lX$AVubWo@u;_XSW&Zrb{6+prT0&~ zf&8EO{&l6bb30{tJ<&C3toiUJ0~&eeT5Ng=p^pWcjmR~#-fPSmL%N{W1YqmQ-8ps!I9Lc;2UR* zErNNYNms|&jDDihQNgw|w5Bd%rNjs?Sl>X$NQKCTp5<;ITUrz82L-eW)XivMbQi zv&b6n0ZTFCrf57-!6j#mULi#XXkx%!g`uhV1vEF~7Y}G4o0Y3d_00!NdXM)+^p0C| z;d8RZ3XiyVWnr{J4nSl4krOn=Yn1B)Cuoe{cOts=URVazHVbA|i`K~+b=#xheVeQ2 z8(9jM3Y$CqA9br*;k~huYv7wGu2L>5f=~1oH+X5Tes{O7DNy}dwPr$1GHl5E)n=p8 zXHBPnS$;lB%R6xsu2$tb_QXs)XW`mb{e(T^gu3+raPzb8)u4e~YVzxUoosa_V;%o9 zH9Xf3%QjvC`XRhI*`wW&+&Tg426k+hoacN+Mh#LUoI~_?B@NuG5LP3sM0g5e zEy43tga zxEgK}!<;(gZ)G4<+z)G8&6!gAwihbGc2_Qi77vUDXSm_d99xCZ^Cynw<31B%3c^B# zUs~Hf3U)-I;1BXrXi6V>mS8!YUk}|ny;pesZCLi@JbB=oXpJ=x;`#+x3wzJT`&de1 zO+}Il`Tr65g8zmU!WDKnl?i=2Xgl!TX~bKm%u6X2q-X8!isp9VE#6fQ&vNng$t9!U zQRk=7h2CfEoM${ZryoQA18-XnQ~JVi~cR_23)6UyT*&6zPXh&S|Tpp8M;{ zh;7rAmFcC>i&r8Qn3mbYFc~*8_7_(P?4y=ecbIBslYd~&qj+S62a#B;Nn(pLB|hy5 z*c~5vxiHyVFglS-<=^CX^PZ*7UCvCDa=M4J%8+PS@%$a0omB>lx=0Tzy>5GKg$4FJ zy|c;YW(oSM5aI7wgB#wr?ujab&Ak%09V^hv)u~ZMjdp|UC@eaOe}RQ3XRU>M^9x8g zSi=R_MAEQWrbn*|AhlLI3t4mf_vg%eJ>8}8CQBwg<4vZ5?i$0 z{x!>ST`$MSE|KLTvQD>dK&RNl4Rhm{LRT)U=e%VPex&_~Z#T^z@t@_OEZ8tBi{OPqChy2jtzmrw|?t zqhYm|KTPu5G&!~?w#<;>w)cnLKQjULa#z@2GHq~imLEguutmimja0ZB1FnV?L)i%F zK}wNO*kUarNfbe@8~bMr?C2Y$bJ7AKN7y^IRD+* z5r=9d-O-06-tQ^JTJmcK4wqIj@$%iM&&To4l&&brPk5-{d?@qOfzeN~1bAcAOMi)n z%&*|%_+OQ{OQV84C&}Iztj8T=xkY}*SjXW^*c5!YNS$#x$qeyD^fKYYNo zaLwv^qjYcSvXb+m{*$m@T4?mCy#jn73-FGvu4AxDcQ@cTAL==oSO_VbMO~+E-pCGA z?vK}cbPePwUJE)(c@syjl#XxcH}i0HBIFK#@pCOI%*CJk9kK&nDOj$}cl*5gMK>2y z3P9038=jlRIxQ@uoezDeKoR2;!6`6{5k8Y)|ES?-INlh91NNi`;m|awJ$#D*>(!d( zVTsQdP@7SDF6Cz1*YO0&l#;2X!%U?LM6f`2Y=`X=f1_>R;hd7OrEi(;ETA^ZC{0Hj zJb98EomdEOoT>0;1^Z_d6R!V*C>LJGMt|=zq-RS{6~cZ~HO6gx=G-F*jqDlwBMCcQ z)1*G7Jc5SGl}bjUPts2Af-YvKS)Qa>4mDm${Q~8SeRw|M3)vL-^ zF@s-`%~45#(tAE0vRTNhk4V5FrRT@$6^M+*@KSv!dX9%ZZO<{aJt)eNrS-6&xx>`{ zKv-rw2b+BKXC1tgPd)k@>IbFW4|D8Mgbw&S4DJ~v(Ksf`{|B4q*dJgCtlcIYBAss7 z@`fHYS08TKIDeB_;I`R}hi@#MQF3F^%wm>MUCYuM&0^~YHnMnM1zDEg7q9kc>eVe8_#zXOQO&hd&WGZ)4LXmu zS=aKo>9zu19!9)S-TSuB{ChFBxNVf0Yw3!Q48Epl0CzZs+OG|JZuHlIJ!JZ;h5tgr z?3=KGOt{*|5Dn6U}449GukC=T~@6rvnGfh;$*NF z04b)XJ?zCY?GWbL--Y?jA=%r0$lm^XfcT@&OI0q1i1M7!kqC9qQ`%>d?& z$B4Kc5~qmz@yhR>(9J#cUX6LFCsfvBl{EEJ2V)#PCd3dQ2MoYBYJ5X)dO}lr;Q8Gf z0nSA{qG_ICjqq?&q4N!ilXyhEeTG%z;ciqns=dQui4r>HN3esE{(!9~-gE=eGWAvw zJxr8DqvSTMM_&&;{3DtPxaR_^awGg(F~4XJuPa?sLSNjEbR=<8LmJJF{6==*dm3*< z`<^Lz2IDMvPLmwxyBNQs6 zQX0Jvl{{QZvrbRwuje?+CI`(hIA@U}jNanVz=opeRVgzJ8{HH7=v^J&u8t~GHWG_dmyo?Kx{B!wz$1y5uj^3$C=k4-&o8U3?&Gb82HDay)j74yPz^0h`K%?RjGpHy7|<9*8GzV(r)`I3u^)et<8z-@-;^w|w>l zwP%(>?TXILh9_OoKWnh%hs&4ZS$z!ny|j`vj9$Yzx>M`2<|(v0caBn0YZA1hN=996 z-Ncf_QW}pvq2#Nr3)y6fkh;Yopmhl{g?^%S4Od$?QE6T9M_23htbH+jSkeC%Uxdfy z(0nuR)62?>q47I3|2!}_?=%e3N%G%7e{W;lOooB2a-90J{T=JJuQ?_*9FAwLD$LmM zWZUq7>DB`3Jv;m(^n~`E9qK*6Z4pv7Ie6;5RQ~Fm-xF#-tMpz9U(YMONAvnG`)?)t zOXcl0Uwpgmz_E5v;5Tfa92#3Rw)k4C%r3R2-0Qdv)ZtJooE|;tlnYTMdvE za8qe4@Gf!6ZMMGn_iR4^3poF8ZRZY&b^dtp6m>MKQyN%!glAc<`JeGit2RUO-XD7E zN@O zurG)0uh~oe7sPq9wBqLW1tv*49&affrSJdY; zg=tAab34m2_%}=XLk83(es_Gs#n2Od#B0zx*dcRD4Gq{|zsa|(I!|&;FU-~)PAjf4 zeH=d!THKdXQfqQnaqwy|5E^;O@Y{I!=8WHcF?1U&AZPf<|KC99oq^2i(bW%D?N5rp zPA@kTmR9p{pZs9e{g|T;WIV*aGnp~2Q%t0@hQ0H{j}}v_po=_Zdm-Al0>Zrh-1NQUX{_iQ*lSo@$OZS)@(MY&Wv7t{(a zwUeI~;S{HeQ(m;4@-KC8dEz8-q6R+gj~pe<1!`mRGeWlG;oE9=f)otBc@}dBf|`&V5c*wJ>^w zoaz$I3DVU3f<&zpZT&IPW8;sqv>a$%RGKU}sfBSqkm3?QO?4UbQk`RPp03+Z>(Ahx zf0X@W&Y^jo(}1rOUJ|8!<&Z>Y zt9??o)(6c5?CZd;pZw)qL-X^My!^#HL(A8dn&zm6&8c^?R}wTkiW1bGzioJKgJCi! zB{giuyp zNB(&1%!rd7gHLUCI3}QL)p@z;(iHMFMib6!`Bro$?X3MQX(#NxhmM^Kw?$g#O(wycv^5wycrF5#pGD7?Nz_KBP7ipD z;hj??p*a*XUrs_UH_uyblIJHiM0OH16a3Ws2^47H%d*;0~MpExj%9seJBD@r^jQ+X%*lf0iNM0%38 z{sWp!I*c5X&omwFap)@<68PXYczZ>k2S4dkNdoR2eG}o+Ufc47J>5JVIAaLD*!u@r zXfb4|d{Wk89|xaGZ^;#MQfs6aJ53Ft&D^^IsYwxpYdRzpzgb;!4tsG47?XtovjhXGUKd<#mZO83DkJHEiYU3+?7 zDZJQXoNN3-a}o9|1^;udQdr0z=VzPlW_Nx*-_4`E=5Dm3N#eY3rSGF!V6|VsWy#ou$UKaMNPy zRbP`vm%0U*cX0Xldg#2(@UhW1IHQ~OJEEOjZq)I(9q*>z&e|78r|&M*_+kN#i1n7f zISyWkFZYj{b8jUZ7vt9gvNdNTS{=ZY#KeKzgkw#%_+wgN$+vw;Ug!L^2}zA{ElsX> zMb)>%iX&Q_rX+X^Tz**$3YVkik=G$P0q1mr{rv)QQRc{E?7f#fQ*obtIOdS;HnmTX z_3(_P_q3h382U?}M)5RB{j(6^QS<|yN+ww#_1h+d;GTPn@15(K_k{h0%DwhDX<3Qh zlL>!Bsyd@n47T?#b&Ynt>LU4-W=mKDWwJj~-s|pj-%-LE-OyuN3~Zg@HtgoN{194k zd5m0HS~;zjkaS$#oMzf&i$BQC zJbQ3XafG+H#B?dq46U~KK z@2gvo0y6y*kg-$j{EN^S1Al>f_ldz0NV|D6H;v00dnmK0j=Al#Oqt6^W1nB^O)u88 z_Bb7;-#DjA*j)k*ns7?HQ`5>)W;&mA^4WU$KmCKK`PPbc417lR>&?cL-Okg{Y7~R3 z`hcrxk!an7e)80%Em3XL&3jGp5lVf?`7VZfE=3O7l(*-GWze5syiG)Z4SStqJnrKW zBJlj(?(q2f=NBBKu{T5M(^%KqcEQ6pG`RR|!6%K@L*s?X-00f0yLmHe`W0p&YR5x; zT*`bK=Zr@?9)N#o0aCpF(0}(v!-tv`ElBi-+ad&WdZ`5|?$5pOSRFK@1xLv|^f)jB zK#Rc9Px>MKp>`!UrjO;oLO}5KKHf#`r#qxBYC`+1P1wC0K0S7F<{3^V^Jdy#*#W&B zMNScXvTw;8Q7Wti|LohG;VgcPIpK<`RD+!5PR%;wqqSv3a4hI} zH|)U+HB$k3L@*t{kHfnM2TdK`Ge**zL2-lTUPuy-8_oK3XtOqs1k7WggJKBA;r(aF z#b7S{d-#37ad9oN@YW$(;FUgww7od=`lEeDXb$VKwa|n(lNue?6av)-ebDWxgfWt;_E9nX~`xqdli| zDKOtNNxY$ZK0I3i`p-bqY1fJe^qVYm*{>54q0tp3>(G|wY@Kf}=oa@W)%zW!)F}1l ztn>}(Af187lX1XD|D}jI8mALJ+=6>^fJ=l=Ctu^(34|{Y4kMJ~9nlh^@kIy+cX8|k z1niLon=gqaEOj-!xUViB!2T8S)|9>manHkdf!?Q{yStL8zN++W1+4G;gQ0N)Z_ckl zIx5eqq*VjI9)%}^XrFeD6R9H(y%jiYwjavba7g7pH$(Zl2yz!PO0fz8cWWq@}I#r&M#zM%M)Cd?*n+aRPif ze2D$Gpr8D^%)rQmP7|=$af!oDmuL>lJgM%4uUMgbFb*zNLSvPU?x=ttUb4WkbrJGb zL6U!)ADn5kQ4%oI#RFTSeM?<@g9aWRL!oH=*7)G15IWR+ixKnKPyU-AQJUx{PU6v1 z0avOeRw^x2<&A>Jx_ez}(7^jnK}v5GZ-{`UgDLppf}ivDg-&1LFtbnbS>O%%Z;L+% z$IZrF@_%lsa%tcX&bPRi-eg|#517R9RE`ghV>7csocZ{VzGCxzn#tsMd?d4I7jpD+1NBsbt zlj>YXtOF(waH(ckY@q&n@FIJ z=c~ocE(RCit5livptAiBfy2o3zvoITfi|#@WvBRmMB9z>)ut^KTWm=_!(=htDDzoS zK0T~<7*h>$Unu$tX|&5-#tF_rWU`$7!o9L}H6ry0{>H)5+8lrDzp zZe&qpaa2iEDY$VDd2NE{zTI3C-zaPmgRXvP>Vm@&gQ|AO!cgOJQ#VHab)d(U6;p!EfN3m>(D6Gp6dHUnd5?>kXIJ2mQdR)NENyy}u~e zGP+!Z*X2x{oM51SD$srw{0aMg%%_sF-N}-5rn*6wTXHB{N_Ml{8Gdehf;)GN&39)J z_DMmNv18v75!{TqTy;zgzT2zN*|c5qX2|GIn8rXxcgvhx;IDA)z%3=qZgD2)Jijj2 z?6gRp@i&)5IaRI8oO@m6b6+Y?b-p_Pb#Of5G}!fcT?LNm$6hh`T<`3;plHrl6IRF* zB&}lT9#Ils8ec}T^%am-k#9roZnlMM6o45IKx;VM>-t{pHnlTi zQ0`Tm!7H?vX!1xLMk1b?=r8fvM2p?v>8@CK7Td4DJqS5%N{2*DWxneYum{?&xwfkFRj!+fhq*`Uthp0 zO(s&0Qanm`;G7TkakrBnY}jQAwhyRUc~>H=tq6Y3oa4;5spULL^HZ+7RUIA+-sY}st^ckRhIr13eSqw5P%flFia$y0N8k)nR+bv0owrgMh=bmq3ANgb z*(n^4IUjGM{qeF@-++K@_^5+xuTUB4;QGP)i@&(9f(`^IQ9V%m?r44bOMB!Ss;v zlnSs(Nsy5xUwu!uipV~Yw}KBoi5RrWU>xj7mBp5>uy<7?f_}owu-W8{1{YKb z`U)RFDYrWf;DWrak2Tyk`r>A%wkW-VpLF^~^btH9E$%fl)|+O<@zz_Z%LnU83MZ@J*wKGGdA?%h0?j-yCim*aZ6zxb7Q-Ysyu)j$i)2!&TQC zhU?L*`No%RRO+j)(<``jvEB*>d_u4 zYZ4n(Te#q31EjUn;gAN)>D{A;-?%8$KOS{ApbX;6j$GlaYM)q2*eO>`m$=}sdVBZ2 zKPp^j_-vJGEgPXNDl0rE_<~XqUJxrQ7Gf_TsJwd^X~|zK(K^w^Qo!HKg0!HJoA{+E z)tw+&r|QQ1`*3bHbhIW~+*-*xMVDzf1ipV_HaIbhyL0-$bV?%}T4VwT1Mcc>3+?(w z6`M?qyk?G%aNPnwk>c0lcpW@?Wl8@&FlW=BUk4 zHGBDwpga3VW&Hy@6;Nm1#nSZ|f=t>E+=NdPjBbJ>bhvhITctJwaLe2TqkFXJS@#XL zi++}&A8nl?HhtvKW#ZIQlh9Nni#xap_d0%6*n!>J@Yfd(V`qH=leHN`Uxxf@%~z$iyqP9m)@Qu$5Ox^d8p(Q-ZrqQDg{IuhF*yAbk8?@{OX{J!v4iMz zxCpQ@PI}1qgLry(WL`> z(j%R)3TUDJ9O2%T@L%p|+eM|;=qJn2n~-1Ap6JBrNQQ4<(7k*dD!0skR$l53phg66DC@L=BzHv2T-Bdi!_v=`!iooCa% z9QXrhfn_kAHD7Ou2-cj-1h)`=zVBRQ*+v#Q7pEX9@3t7qMoLc?J_Fl+J)sA2?n46( zfOepblMxTe$u!!33cb;91uv2H2kd1c|Fc_ZO<0@S%6N>5?e8`wt;WK7N9^x~L ze0(PKKEP?NkY~vvWWriJKaS`8%raj-;>`H{pj;@|X3qB2nhRNr?Oy*Ztno_)uWd1M zi#=4Emdbf;c07xRYN3bIV!PEpjZ)z44Djl&;68`mmZ6BjtGh_+Rsmj$X zlh4nQ$~93=#B;oIjg!F`+GCV!6zmSVp)F2VtsGxwf_9%Yk?br6L;8NQotKGrqc9r5 zIvA$nPGK6tbc7iQHzE`u%t9#sk5Gc&^AXPe8ayNJ(7VI>MBCwehxsy;bJtGfli%>a<&%G%d@2U>Y5PS! zCgjswugD6n@(e6xAoMjTv@d~Y-vGyrdo-mytz^Irs*0JcDz3o!JWAD}(DC0P-65nq zhG2#N*=WVjs|XAPXYvN^cjATu0fam!{Mb4p+0v^ zioXD-$TW2YZYy-zwm3G~oeox~%N%itdG#qV(8DC%MVb*dIiTZWU*gczb1n1TG`Fe_ z<(sM;+;~kLao0l2-Ox~}a?CHx$6C!+xS(`Fk>8YE!RoY@L>Fjjo~A+5YH}M*`ED)n z`W4%SuQ6xfEz!`QV|d>ywx7N(m0z(HAJpuIPw2ja62YUj{03a<|KD74kxPz}%h5h- zDd#y=p?7I5L%ED}mnY0}M_w0};U*WL48szQTq2cRKIqfS!%{}13H7mNZi^_7u;7l` z$C~*TmTpKJUQ_L;TD;sLjhtVT>K-m}lkSt2*DR3AYsN=aND~c}H8#m!W7U_}G}TNs z%#50*zw@EyhmJh-+lSfCDTWzQGxgqw7eD;ZhmGdnK0<98=C$rKfq`!FDsxJ3&(8L! zIv!rV1-~2my>WR_4GcR?j~7RIaaJjG`AR@8bUUQs4G*~=krqpFb+@~#q}cj<+<$Y= zb&plwSa^dtuJ8pnFKH)?z9`9y76hT895=zc36e&>@>g&(_X z(^AwosqOCQ!jRb%`76gTRDdi5gc|pQ@5s_(qF2Bb7Hzr)H%O z^F%k|RKtGfKcy>W+J{HeqcwTblO$YSr z#|r-Rk|*u4u5FG9$-F-m)QNXZ#}l2Sjc`d`OR;tf!;aO6ZH9WzWAsKgkdz?CJFI17 ztKdoW>bHoV1h2|t@~S=2UX3T-tMfP=5uPZ>4Nv!?r6B*f6gt1^>oUjfYn4Sp8=ANL~1YOC)Zm;i;Emm_%Ags=%=MIFc1wAbv}+@4exSD#d} z!X8`qQpGUO@CL1G*l#9m$6n@!ydB&dJUsfwzMh-PoBKm=T~x_2#YUV=e!?CMz1qui zwZ4awaiSEbEG~rBT;XO~Q}b%H(DT0sE35Dsj!@{yD^cw=A89`lp#|UJ$b=zt+M9|% z`88MvWWpEo3j6&NaaJ){3W<*Dh`N~ekEn!4dPTI}{Z^uhWiRn8@I2@??nGmwq~Vet z`#Tpxw?noAt%XMTb>;Sq-}h2r{!*ELRk3g<-~`_yRXh<UQl;70w60ZpxA*iEX_Cog{T~ z>`^m#zZA&JMW4mQO^tvIN8__eAKKJM#A36FTB@smcY;E}fp7btr1eegoY>NM=`B0% zB~ROXDq>6TvrlyKZ^t=V!$3+N=Bv*Ku#2b2r}V)(?9yqsNircJ%p^Bq zmh1`HAuK9kCdO<)5VQ%RodlPgpcwZ7w;)vmE}cnOW|FXJZP`Ss(tc}ei(9MI*10U- z0s(tLDiDH>2;A)R|C~v*?el-0-(J*;&Z}q z88RKBfPKgm;=AMIXk^*NNwcaG_5_w@WkpMCY@ZTK{ftUItK*ZFYK^f0;++&tf9au- zQrRjb>>?B=x|!Le4sC$%AnoLk;vC{cAtzphXz@UzJfvhso=ITX8hIx4`twE%xO?#2gq#CUv2=joM;hjfU= z>uR5=zrQ>!5{su}RzG5z$isOV~5~`9rArZoA;3SgGqZD#4hx_7h`@CA{Knm3!gqc`jIe; zd-%`eV-Lmt*YVFpj(>jQ_&dT}hIaFR9>3<$n*Tcf-pKK*CysZ8`PBb+e-=cJe{kaX zoUrQu=+BJE@pn%g9~V~tAN@&*9N#c;{P39O|LBi8a{Pjc24~i?LQMBl?Q}<2pwybeq-#`$hSq2Z>+s6@~t}ZjkC8!zPUzYAis=~35*dsDY}Q`s--AchMY8h z+UfPkUq^c$tpRNgS{~XJ#EM+??^&NCelz7K zVjw$Op}*w5@WZ}C|G$0jVqGmbkWia2e@f+3N!D=5nAqnYlQ zN(XrM3D^yYt))Uy9)bqLofa#uC~X6J$Mxf~r62dR z3BN`0tbYk>YBlh`pREUuNo=Q>QpY@j1WoSo*k}vR0gom4rl==dEim3I)+k{f0p6;V zq_VygAUxiQpcKw9hnC{k{p@-++aS@|ewGQCq1|D%oCR#wW##Q}!ENKnX+tK%bf&~q zXewoVTp%RA>|{><3|LX>O%5G6oAvxwxIpiACHTHe`+pci=Y{M*6P4q>1$RlCy}80F+)Az~pAG;=X1k{3VO}yoooQOLg!00CVOc5SUDkM+0SlKd zdpKy#9t;x1q)i`bWL-9c@2q5PWlG>*#St|2|9j`fBj6-*GuD@&n`R2`0*ZfGaW}E5 ztEX)Fb-f{iK2nso2F7!WgWB;i^%~Zr5PXGu#4Gj}_tz1|mtPM)y<U zv_Bd7$KjYv?Wwm@my?UjV(g|epNnx_T%wZSwlAhztXkKFC40r!G~}r6%-g9=WY@A+ zDh(P>xg}-_^nB!1;%d>jS{&k(+5%(?kELWXr!w6PYW8Hh_lR9MvtM3QnI(GA+s?tS z14S4Ym@GQK@^xA+zFnB0Kv(UI-G@$J^#BF8q%OMbl0 z^FLm{S9Pbn@W<_|e!PB-YLQ%x?V8AS9>Dg=63PEbu%b#cqX28RF0>rTuA4H+iMgqE zf%g{*R}uSs&oLW7-gvVh--vUyk#iT~+$lJBR&Z98cH-Qd|Kr?3LFK;+4xdBz8!SF@ zx0zV2tq$;;Aj%v$KOg5ONx4<}$hmZMq+<(@XWZsUQpdUUaypKsmYAYgutz2B5^KqF z?H(Y>=-9GS4Fo!cE=Q4yFxpA*&tKDs-7s{YB#d7j8vVN$-(N-hIogA0>{{Sb@i!K2 zC0a9DIkv^2&A{h0H0e2T2BGz1O?Z3_@J{$U8-Lf}?^9^^p@j~7R{hz0qwrbPYM{Y_%j4m^mSMGW~5x$ID;< z$ZyCIOvST=5B~bW2Z`c)n7Mj)UPE`)p^OkLxvR)i&uVy&w443#Ph3@$(YNh&Bx_kr zDzKGhxl0VYXs^pg!%D}9cOkdcTbnI>-(V^tHnaOxta7>z_&31u#$>3x>J5}ZGqPId zCra(LT7P?Wd(HjeN3hzg0>wa3?Qj`n-R{&gu!|I>dAHmjZYURL@q^8wa=PtAJwJypo(x7K)9m79g>c1`EE${h4e6X3fR z?_op#!uYdFi@Ot>+p>k@SFGhEtAXNuuQFOop!u?r+fVnIven1Ig~4debep}OlOGiv z46!d=yx7l%G^0RYm9ly4DQ!ME^$;@Nkbg3gFR)&B=}Zr`t(MTd8JjkAH-3%so93aO zOfJ<1g7aX9TvZB2=~J043jAjA?#hzgcOy3_gO~GWRXeNa{mIM}Tj1SO zq%5Hhcr%U6#!oCF*aqf83*IU%nUJ|{l7SNz7!q^G;~xi!_?R!tSL{I^~9R(NmN7m`HKv> z1C8>Eu3W&QSI@xP6a$oU`j#$D+_9FL^(0iEP|t(ibK|haYscUBhwp_YtcE456*S#6 zTXyDH##TcfIrST4JQL|1nb?fLmR?r8{bA+L!z>@CPl!%&<+bhe#5iUNmNJj^5P89s z;M&)^L)_`<_b~QXbqQr&SC6Z})!(|aHKQw6AP(&=W63_Vc4Lj3$!`eq@D`GM68xE5 zl*DC|Q*H8!3Tv^jQ`Jel{A{(KvWAT+Z(&3}(rfQZHOKN=qYYR~`zYVd!cS-BQIIi$ zceRWn5=XesmI|ZwxuuQ(Te2HjOt<6eOM)|!ba{(U7YV{!`q_@iHOb~t_y|d6Wp9T0 z5AZR}!Zim*aAiLqx;nBW@{F&Jzz(o#3;EEc5qi}ZmTF5@u9+sM21=6jg*%+tCvzUL z_hboCg&F)zyusrmJb0vH3QatmL?LM;ONcF`?E@dt$6>UEjC9CT@ft1t!FR zzRS@4jZ!gc=xVOGp%A`*AMb0kA=h{#(108D-G7U$3c4;8tf1a8E+zi-ImlvLeWfP( z=nnCxm5kF8ybDsUxm=IRSJcmC1di@092s@$mtwN;HpcHyBICDcfC-%%ksWss&OS|E zRGBEm>=MgWBIUuM8A`Vgaw(}NUlXgV^v>AeIa?KR*GFwJdT%b{tt#LljooIKyKbYV z=a|;73mFFd=aU65u0Ahvbq-g5b3}&T#@f%;vF_XDkSAGSG-~Plc8i*1Es&D*B&SAt zL)@*gAG_ws(r9DGlT^u_}pXi#zYrJvB$JS}Ow21IbVsk2!^l`3icA9>& zYZ{+zOyZM_1Z#`7OVbIagOTq&DVpgq*d65H0VmU)Dr0hV~@q>yGLYX65a!Z zk5QJ>D7I(?;q5&3{AA)u(7sasR_y{EeAMs#hv)ISk}+(gY%TBq0X`fSei|hVS414E`FlHnj4H&*rB2YT>5JH_LCTF{fH9 zzJp8)c7w^?qlrE?JB5)-;T?N1^(*kxSj6d-Kz#YASLz#OHvITgfX}?F+Cq)tBrwtfkAT zJI#bn56fv>Ml*S$j!DfvA*Q4uJ z`4?7!G0WSGh!JJ3Vmq~9X#5P)bJeK<<*#8@d@x%B{9NCVoW`a@oM&r0z)T@iJ|J4&$#=;Z9V;k=!4(Lyg9b%i^OSEOQ#-#zd#*B?G zGISXHKq=*@;iG;NXh?7rZ_;c+Elub@h(1p}B?{Ug6Y3n2?LQ&^T7?d3_XIms+D>8iU?v2 zOz7z$`u4}=OQxV(pzhIC|EhuJKv6w|j>83mnu&2p=j?~W|DLndPfzD6ou9yewj0_z zor#ExgIhNzLDI?2_L}xCXRPEDYs6rp%jueDoY)5T?gDM0$=IYFk_RA4Inz4KgesZ6~M-`11-B4El)Mc`dWem%31q^E+<-Mk(dI>_Q+ zy9$}bW;3|kz0NqvEOdk8o&Xs;4?3GldJb1+rH}B|qLF(^@8Gq|6b;PynHg=RrUJ%$ z3G??Ky;$oa*x7MkP1=GeA+74A{glJ3wVvGz#sN{lNY`~^n+r^aX^DiO~RK8L_+d=)1L}z}c@$%k%D$(R@q1zMITtN- zptQCWeBp1Dm)7#WQecD5Hh{af({_Eqi|KImb`R1vfK7d?DV=WQ) z0K>+3yEF!%(7#uXjcE}>m<n3fC?@mRYU0zMR%lZnd%A0^u8! z#nZmU_*Rzl9fjbhve#T!Xl}rypmlzm?eAbgqS*mO=nr_pt^add7PQl;sIr?7=C={Y z@Dm!;_-q?XsEMmis5*~~OwzHllz{~~6L?qcp390AeI6N61+)tox32Py1~9o{-K1XJ zYs&R8{lfPnvCVfUp3(idCn}@pIH5ADXyy1lR^uLPBV(m^{}&6m&M#`7DR11O)T@2E zjmrZ~TX^Ju-0hz&#`u~Ay|G+&uD1!*umyfve%$X_KsDQZLYu!4d`#tze)cs8d!qG8*NZsIKptQL`lA1XvYjDeEQ z2gQYM9W+5=qrF2sGEm}c5sh0~+`PYJ4(dUc`22jhzCX5s=T#2$%N1M*aS0`8gx}LsQk6f>sew1oOVWkAV z^nBD~S%af9BGJVz99?r>SEcno1Y~%Vy#DIA{H6Nn0{9k+(2~&xfLWmO$<+)E^1U6N7Z0p;I_HDEM~R;_vYESkE^(kB$`i* z`>+cmMT=IV7}e49U+34T{NLd|w4uR)fB!<(fBeF~29AEsZHsXXc(^hiGoOWjRF#t= zLGMH#r&e1ho|-mve83IH2XFzL)(e&z+Q;wfX&*lx$bh~)QaYyChCM5x*-BMkzb1C7 zHZ-~}gbsYZ;Pcu8umt!G#tvRMRL%P}ov(GjSa0w(2sesaX2;gRM)nSZ zjGilL&7`RwStY?Y6pM9J2wt3A?!LBdUb({kq23Sd~ zKpzlwXQ@DQOA~w5fqUz(XcCTD_O*eNY|8E_otn_kppmG0;p@k$cNrRi2Hv+ZW&4mC zqcy#LlPkTh5&k}PuiEdZKcTrF<84gw4XL&=m}3R){mT6pw$!+Pl#o9g8c@hkJ;pgb zi%Q19K~B6$n2?QDKV)NOL^fU?^kQC&%f`n>UVv;oha-z28RfzC6MLv+yl>=g=Oyet zHmKSPsqA()6hcO(0|}tR)eoV*{VbgG=fP(pv&sQJyP^`d!^1DGGK*drV z^X}l|kz;gz6=Vn1$$vWX9$4oYM^k;AYk8fqYehvP{}lZl zP!3-*cC*F6Zi8KKWks~FX+|vW=>9>Kcq95H4lerfNrZr_9aGK>l2mTPaT)A-)`B*! zQzsX-$0b^Ly|Ji`WW)0BwwO7eyP>F^3tUn@1U~7TQ-@$haG?)}w+HlI&fD%(pPB-1 zCX+s;_ThKHCy;4dzqF{WsNI12 z85+OV8xQ>KxU|Ze&v$26)ic$6Vq@K+mfH>`Iu zCn!!S20hC~&s3+2+s%muksf~|8KCh|+o;PqHTXK-St9gZDsd}Uu7T{i;d~07Sjvx2 z>~~|dcU=()#|NfV8tSR9d`a=B@{6(b^OG0yTLV3u|5^jpb`pbA@SZ&b<74#Ef#@Hf zz{n7N&zA?N)kuQ;`I(}K8~}1Y?ff<6-l6W)UywJTA<=tz5BEXk#n16Kbl|=D@74Z( z!JFmr9q&Q=pA4j;N{9kd@e*P$h7AR%Ud2fR%G?3YvHk43$P-vmK2KSmM`i)#77fD^2Vd+TPkhqzI28Lt2h$sf%h0Zu-1L8m8l)aM!sJum)(>9P$^jNeP z*$>hb|4+{nYqa+QG_yTRNzQG-KH&3fq?c>@)3XJ!g4muQrlKpUE6SG@d}Gmf=f zSoeH)6Jw{zTO`k1Pwgf>IA1i~?dGh8&&*+E(*ViL4i<>>gek!`hY{Q=Q#vmp&O@yl zdOR;>H)y&gGqnfxel03(8G+Y&5@*E(b$%_z8#q&n+X{7Feg=GRK2zx>Q3p1vPkYt! zh4f6}2`HpvO4308;tMnqw3K9(NEczBHdy*I5Cu0Xe!or{?U1=*Rb+zS7$4L@bJYN2HaC~ktE3?R_bDNr*<)!gU-a3ckM!_} zJYJaSHukiWmWuL4nT`vkfu+xow=Am=TtY0(dMd-zq4hpX9A_Ry+~k={z~&;>LB~Ix z3nt8gtFQ+sM(j~+*98pgDWb&KbA`#luOmObtC%@rPUuW*H(52_@pW;DbIClx*5r&W z)A-KOsC#|LTEwhz#kwxmUBoJt7HkFzYz5wBec_U#x?;UI);FmmuJc{%2Z+t-Me`n1 zw(IC`05UlchjG3A7Uc3szn7_3fyJzSN7nZ+CHf87x&M;R%X`FtX38;Q)7yo;@B{hS zjs(aTyYNKKHRWk&oI1(S{aEGWRSyg1`c1xAY;}ef^7D-Yc!F$U$^pSsjoBUGCz1BZmlwOFRpBuSP!a4c8WinkPu5&Zs%i; zjsJ?dn?-FMs?`|+6*ZZ{U+beHGB0~1x{HAa&g`fC2b!@v2CPd*hAqG#vET|xM6`F8 z__>NbnhA;W*w~k;SURD}q~nb zV2i_I<1$O(wW3$58`Dg9^s+O*lyYUWKVQ}bFkTCFKI-2gCqrLrw=y%dn^uV0o*t*_ zL0o zOy3qna$`O&C&cX_qJpe&h<@+Fpuz3LZmPM0N2cgw`3T;*UNUjvj-=rAJ3t?zGogeAwwc>ieM7NL*1*hX<$Z-x2l zwPt6EcV3y3D;vjV(Z17tJHlM@f9|2%Hp3G$jyf~FPv9p2E~%0SLkbV8Nl~)L9=fJXDFdEp?|kgvnmOkavmrMtw{I%;u3v!s~=*?QZzjOS{|Mz zYx1h{>q-#knclw%+ZVF*x$(ja@FkatKSxzX+@BXVH+UU|!wgu~EQgCcb39$n$x^GZ zN&x;*+V0-vW~|Zj+-$=sruzl+R;T7T>HfKS8+fuWDSw7%{E>HX4t2O{c3`itv5 zYdwq0PHJvG`nuR8^2LyAhvS6Tft+gj@!KBv>tdtWC9J1!IsI|G<=5P1&r*+?O>pfN zo5fDyCAtT-0C{b1-F_GNZ&dr(w=BQ}Iz;4wN-fRHo4ZhzCbQYryw<$lT;SgC ze#AY?{X6$+_c)j8I$RfQSJP1mD-eaMkY|7aq?u5r17MwuJU#~9xz=19c!NdI)3YEL>eiN z2fcnW#-HO|ROULnl zqGVo8QDyb`KVI_V|5&MaHKG{OG&ag*2)^c4VdR9BjrdiJn;XeA<ku?sVHxMdiBk)Wz|dDWL;DM_oV4&O(2` zCrmO><20Bf30}-;W;1$F zf#;XVCCN_y-hD>QY<|@(yI*tXHvY^_{MS)UBW6DsH}RZ)0@)VfQrIG-7?AN^0A~2t zhm7EMg6?_4>!MrC!P~KoXIsH@NM#Ovwum?S_zqR)q%8!o3X(kw@%qwWE{!v!QzV}j z_o&5>CIbgh+S=n(s|K&!EeTExb|!3ht|AHa)&ePB8RuY_M8 zFm(8DSs`*@WMid9Q42;Mrc_(Z6}Fpra~Z2Q2#7~TKMU)H zuQD4s{w45ev*=$m&?N^e2pQXj`2y5(C8Cp+(i+sp&=wJJu1&@wFT8d|-m3nY}m2^7N*Bk6_I7?}7Q;X~+Wh1$Tk^a)- zIBAPGrFtX!i2m9)ka!$v4|?rOh~B=#nT+F%5@nCkMXsloPSSINKpKIUD+;~kBfTvs zI|$8KU6X0wLf^ieV#mm`n<6^m4}Fcub8+4N8pMK(@bsAz15Og$DCY?jy-Mwcp|NaH zBW!A>+0<9Z<|gv+k3H#pa-Oz8jp%zA7-NmsD!$k}6Z_ANX#$*ApSak$c%Hh;j~Uns zKKU?WJ~XlvRs`hmnGZ+;UG#WfEOO3l4A|8oeVq2|<#|Y`6}-8t^>3DevKT6gLRjhTM6) zGc}m3Y5XbC1Dp~1!k|*mc)t9&E|LJLIVb1>VmZ|O?&EJ4p&lX{<3{VkhdTU4<_&4x<@7OjrY`otlb!{9$azV|3>QwX4UlwpByQ$3e<#@I8#W z@-?etY?d+>C<|OMWF51*X|(3Lq8S6PSY#G3yS`H%hpwT*8yy*?E1Nbl6I4O7hiYez z$bB*s73k@Vpd1g7NvLwc*ww;RJolB*A#RHxL~ae{K<_InW@R6Je#I8dtU>7(ndICY z?8Y6dgH|EU_MI{%3=|J)qZT0VN(G))%5$3rrlw+OOy4PqVRahigwCaPK+@upK3T$p z#TJ!0iujH>6kUy@qwyT4NH>U@wL>^!$1iE0dZaV?WiUVyjFo< zH=b)IxqXpsZ;sL@tlLj3#GI4pSXl?Y%mm~tPQ@M3N-i4cHvAY#C7IJDp;qOmHHv7~ z7^GrJe1s8C14cZmrTuG|g_o1f1X>rl2|xis)6)VS9VhdtlVnY*N!D!9Kr(<03*+JB zD4(K{E;o~D*CY*Cc4t8cVN)rVh{2nmKc;T_wocJoek zXPqe96tx<&{6uu%En4oKnWaK(N(9@Q!l z?Km0RO;K)?V_;l@PLWJ|wL5Ks71H8tKg~YZJC?gm!1>`l<5`uDs*(Bn1;&GR7d?e8E!Df;8evQ#*ZT?W>I!3bQ zNqb=3F`b==rP!L0f9aeV$;BYqCDH})b&>b_5#O>l^ESqrLo3?QJf@s<33C|Ld{?>| zWa^FQJnwe*;lA-1tR$D*tbdLmfWMToI&uM8^L+IvkG{~i6ISlWoOnpU@UtzG*e#lLGR-ZSy0z(dYL*=>traV*1y7aNm5_APo4mISOsrO{QGLpi z{uYr9tar|kcH%BHUQIV;{d6?5Hj6ViI6ihrc7}8b{H<)@buoawwq`_ap^u;rOXOb6 zlIB0|f#ULixCeR%KlJ!XFhcxie;v3Y$$9VO)QG>08- zg|0rOtdCaNyRQ6hm=pP&?}ICyE9Y791ZrU=((P{!)9QQIf{;NG9Y1uSazW+7Dnw+X zyp@&DmL~|af%a^(PKJzkvT5!pfnt>rCxFLN*HJ6yHpkdxPrFNQ&2C=Nd{H!Z0MXb5 zyp2zXo-j6;vVw~lGL)%d$$jE8nRrc{q{4kn#* zKME`tsGVK%=S%n(GhYv9SFxIGM=!x>1h5p#wR!ISW+4aq%75)z5&* zZ+|`V{eTGvX46gb6R=kFDQ%b2YUT+6XVP(!nH6Maa^CD^dD*Ey;&{JPE{;$fuYeKX zr?gzAINm6L+(h& zb)|cVu4~|e07E|KCg~CE?d&>d-MksV-cpWCMPfSs8+i+~BE~k&lK&WU7S;oN|CCqM zE58kVtbJLm#xRbrwJ{F0?@p&to{90nBI1U+E6^OCIyI)O9aSOEQjNM?EHE7`aI{pL ztb%Xp7TBwAtIChH*@-n>@DY$6&~b)3TE)1|_*G`$Dh;QuD>r}(;6aR$G3Aa?u=Bca zzl1 zC2o|5ubt}xQU`JLF~u;-;`svI3aun`;FE=))c$!s#Yk&6M0IGleOzr6)ZX9Ke^kkJ zJ^&nW9x9sPZP*fbTJ4%meaZ`$xPXwQ3Wl?w30oQPKY7on{pziMX=gVdXwOETO03Jk zo8uX*YtNifZ+pAC&31$3C8nj^SZaSWrh|0ST#wnX%JmzDlt0mx;$+Ji$}M995{pQ8 zqiTi_L5gwRCV`o=%(-ly)fMffsK_v7B2VQv=w&;`W1nK|zgY-RBd4p+++*Q4L~USu zK)%SDTt&%$Fh5u!mKryAE@XIv5!Efz%SsKMx=pd0hrv353Q&QcCfU&k)n>AJ2(<-h zHImDi4MWP8@P-jYmd;tM_*ONl5w_#+&7&sRXxf4yKS9VowGcN{46FY(JfiWyq8h=29!wL~-6Z=HM^Pw?a3J z58kxEhFoVLuyIePF3dr-SS_>$t@MOQ@>SB?VkxR6*05AbfD>gO5Hu^x;R`A?_m;&_DDI=pAvLv4Q`#Eg0AqENZ!(vrGmqXA&5W$gTgnd-i3SS^1TM)i{doj2nDNjCsTYv@G1jXY%PBQuR09{gH| zs1)>u9vTZ2q!Y~=e^gfzun)_6!{M!eM?Plics#TRf7`8uM1KbT4l>Mt3qy{=H~KQR zQ@fv@$wL~>8pQk`rgF^Y=OF=Z8|E@JZe&5%qMG=8{eMZxtRXHUC8=zr*Z&0?wbe-b zbNizO=%qnD#uOuipFkEItS#2gbY4_izM=fGYS;nX00%r?W6spzRE!&FxLp^Or%<~` zC0$dl!7k>rz7NJnMijIAqOuj-=`MlC)4z!I0eOztgX2-P4;r+*SrCKBbYF4aQ?} zdka&XS@LOPr*oi}*_N3O%YSY$D!umAA8pJ8@6z5djmiAu8;a?Aw(8mWZ|z@IUW-ah zap0*j?^XGxd4B?{Spb@x?`%u&Q}Qm-Z?QZ3l+X9SdH+pfTBF;|SRYd5982Fv zbq)bn9k}qrr>htAHmkL;t>EE8R72H+mEx}9sr%GkdK{f6=PnSNDe~#d3k$1R;KLqv z7qbHi+{J?6NyzK>O?Vhs!CO) zs>3B^(SVg^+=rr2wQtmkI`%HAL)FZ$sjXf3Ce}Q51G_a|sIFG|RKl-O|NTM8u9?8~ zXr+qEiivCF55UKqxgzL-b&N5UkuApT{2kM$JR7Ny@Y5jUabTw12w#XQl#ey+a&S%+ z!Li zAtei%g*teXK=M8g79(TlgWx~Ut9Qp?rho9+2OrUP@Uw#-@#*09wngtz!>{<~0g|~- zir&g*m}IM1;I@lX;B%*u1+HsMxdbhN3q~UY^!ix$`RlMK`z4^kF#Gij*noE7D-92p z-!Oq2zoMKB>nE`FfB0uOy!$T)q4H_%yKr6?-(19u9t>P>DxxK`} zbb#Z`W`(t9c+&u>bw4~+VI?oDlK*q;P;U?esY!LHD?oJ-ZI$G-Mm#k$q)_uk3rpfqT9x z$*2Vmy&9jt0p603u?7}2!@UEeW3$$Yo156_mg@s-$^&3 zjy$jl9$1CJe9!FU-DZ<#l>mNWaI0@6te4sJkQsh7IRQ~GX2v>8hlTa81@C47xRtLd z4`Ku?Mm3i0i>57@R`sONX5PN&&%oc_Ti1+8%tgg{Iis4s!`JJlnNQr7?-4!EJ7%-2 zE0&MZYolkP>RUGxYdll;mgiCA(57G%GIBEhXSXF*BJxpK*0Wny@BJx=iIOJU)f*EP25EIO>=&r7t?qOWH~{pjzOlUr$KJKkD9Cq?+%J zaH~=IN}o^sa=df=orzYCcJqzksX@b(n`=5Ss(cX!_8LzvtcZw{jQbi@@>(Z*gg6ZF zj_`#(Cwtfc?G>IzJZsK#(8eNr*eo2(G6u`wZ=Z*GR)?p`NNv_KqA56N!b&4k^ankj zatKFbMjyoQ$(|(1W{n(H{ukrM*lRU2vRhE2&MSYI^OVD*b{=ne zKdhK*;O<(A@xj0!3_cmG!{aslP`em@83gq^7RXH36mgb((0;R!SjOV|nbK5Tc~`jD z<9B8wq8}rJS#*{qiyXHW<$%q5;xppSN!ZIwXJ!`R4*HR^hBz@knWQ{(zdM0G~u*7X7JtW=cIcR5mv1JFd9)LWfF;U3IlbHX*2@WQebGx1Q$xOiv zb2#r#U>m64Ce?iIJmMdIu$J3vQUde%nd%N;2EC*!-a~RTgNX9wqy>Ki_$yYkF%dcy3B%lb@oZba)qr!>m8Cx-iiP%&$5Ubs+Y#PqN+W zj)OL1*}+`+j}e_&2aBJDgm@RYai*ikX*>+gAaGHsy#!o!UJQK9Ojo+ljwkV(^VEBQ zYDrsYrKD?$d3dQ~<9WVYPNX?$6|YgbU4b&5T!VnV}r(WQzYu+9Mh!C>SbZ2trpe-_fdR;baR0(Ew4KB z4l@DhWrd%DIX%8LUSLXQ!?GuV^OlRs^*(lUnoPEGfmfZ0ham?~64W6ZHIuHn=_O?* zkE%PBc^KK_ zBzLdGZY^nr-w^dhk0I7GUhg|}KoB_bCkqkD?KqV9Y`GeCHYyUH+94C0!Dse(pi^|q zcX{p<7S;^a$BO0lc1wjP!AY3}YpUR(vr@MFh$qO)%mCt2U^c&8u?TW8Kc_Z$XO3C= zS;cbT4oQw4GURc*d&4e0YX7AT8o;G_XZ{1Q#KBb?0(jWYl_5oKbNR2>MRS}42Y)AO9{`aPVvptbS-qwv&D%s%Pg%K z;>=dHKi#c@+#_;AWF?J0I6fESf#VJxxD$03Y6LJodt-!G&A_QTo+^JHHr?Xj9n2RMrJzd zxy$PAcbsX5lUtc$btmEpe%7nscETwV>X8I5bw=m`5i40|_8ro^JUVJcAoCxTRft~D3Pkr{RlEmx zcq=?GYP@Haw^*>xnT^as(&Z zCzd&2Y_;BPR{41w+OTxIEh->txU=GiM4nJFx@vjGCuyM3X>2S z`(*#u^0!LFEjnf$$Tr$yBg66 z*1`uIEikA_!wYec7=@^V-2=HZsh8>I3sTMW9lQ?oq5g<a}YzfomhR&_|p#x_cigbwkZCVq`lVkuO_{$n!bm8ZEh7w#;=;>CisCP^LSj}qy90P zf6b#A(I_4!Ubw})cE3ru%T{2&sN8*FkC5iR&;5JnyyJPEW>1$;z-nFAHJhEYj_mT> z5)coJ7NSAjNrdRw=?xV);P@!z01$ffIq4L*#huxo|oQts)JXRJI9v7 zXHT=uH8Met;ayIW(bV+Irt`QrI-)`cEDPcV3nDHrSNyu(hw-Wv6RMI0VosSh+T^qBds39)GDse?| z48%spt>?Gnb7_;4&QZihz|{k$c<6o?lrQ^kfQ-4Ioa{5BPRa%4fBQ7xkiVcD?z>?= zl;1E{{1Yke+z#+g|YH3vmBks-1MC`Y60VW2HtlDN6`K6<5{auf^82 zm1gw*%9(X|j;BFbZQkHaJ@S-r)|^tAQp15I37!a40#1-^9>)KzV!$jz?NLAN2jyK~ zg|lgd_=oQg;XCw!5)P}@zfd#y1|hnV?(>w>qnpC#l4!QWRb}%CzYWhUHQ%k;!np5t zPIr%6y#G6wA^XwZM!Oe{%6PCx^-L9V#00@EsybEOe8)U zbfYGoE|@L8C~S64I-Zv?bqUbh1;l1qQV2Y#L;Sfp3t6uz=5)6{k)&q3OImgERi$Wz z-zq@HLI;PwS?0{eolsfwr-gr-e-OOwobOKy4_3X0nag?&o!gl|)@Z>-w6eUp{K4`Y zMPB^g@?HbPJ zDUaU00yTj&@F9j3AM8+IVgx#mvV*&8=srAUX=f#mBPpgBw#7*%6gyaoGbl=X>%p$`YGShC+7HEBE2Zb=jI$Y<~|iP=Efga zW6NiN%{-vQs$ zb^U*zB-`@9vN1!FAMhk^;|Z8yGlV3J2Y4_VLl{rCWuAhE@CXJnfGo&pY|Job88VuX zkh)1|(-az-rYTL@{v-$~BcxA;Fp?0Qw5b@z`hV|xvN28a`+t7^aCv(7-F?qF_uO;u zIY%mUwU6}tqL)SdzHa<~=ACZ66u;8f>xq|ge%%+3oH0lN)5lWG_B#eC%_3jSg(N9v zx-Th3bvi+cE%FT&Z%VOAeYd2TS*YWgzOi!@9M!Q>!6N^vZqhT&#}$VkBHQY$3^Yzh z_(m0nzoBWb!wr7wy%9P*kY+Mxp^FM^roD;tX?8INy;h&6!TqjgD?Lwm$e-qt4`b>& z<6MMo`k!7^}?R???vp`OlZN@{;o9<`-DMSBEpS<1KO`t#27 z{UtAWpatjsX=kGaSf_h69gye2K9*(+JkUy|{nejhqVLy*u+$6sKyl|XxJ^1UV|~BM z4~JEsa6zvP-;$*t!o$Wnpr78n`dx21sMbCjUbhVRhnBl#GX z_Lt(^^ZuOY`dahUsIwVo&d{Co$GZAxZ^r<`HSGcTO6wepI(^=S{uJ-^tt*^7&|9a! z#<%;Lio-kVtW$(2ZFpOVKAWfY#lYSm?yCB89_VYr`1aSB>W|$a)p+Ul4{K!oDW2?G zHiy<&Z8f5glb}sQ$9G-dqT=vf<#~11>4FZ_DJyy!AASh-X#MN&9e>MK^g+u8ZK1bj za39-W=90bzdDQzYUCT+&+B@^|1gk<|l9|(_=g~WK40hbs?4Ao7_=*Xdtux`vms+L0 z>P@_Jzh^ei)-_nUXj+GqcEjx{#hN{q{5mVrV=q6M)og>r|4zo-@Yfl(2JiCRzU6Pz zs6GwwKneN?EP!8NA84rzH4%N|pba#~V=UBQ9iZz3{9F2SDJZoB{-)p2>>91rY$rW2 zcai{$blv{kpQeZ60n&`RquCjv)oeKknI~QQqzoVa{+6!qlD8l)ZFw5FI za!zEi1|wW&oh)G1d%|wz;ru-rI8JH6jcn*2AyC|Z7thBL^az)xFyu7^GeXZ~*iJ#9 zwBcnu*CPCT65bJdl3^PVHlv_7M{m>h{Jl4X`(#dd2dyy%UM(KI6TZ(?G#NbEr7x*I zeKs&=lpgnzd*1B*c#Z}X!+`as1NH+bzfF4f^nQT(g1%xBor7QW()oJt7KNZ=a}G*wqwN-)BAdo){O=0*i85XvG+c=CIrA}8N;iB*~A2Ufulg3T* zk7mAqG#~8M?51A~+Jkd6t&9PhfEe??`g2YklvD4|N$vR3d05m->2fx!)oNN)yJ)Uo z`Ex}N%H{LNMf!71@73&^rftd7Y=hr$*!0;1hzk({Ba4;R9BEGnL$591f*>qlv})LHdwDE8n6#O*nS4B&q<=E~91=8 zMzeTMNggv^(}vq536OBWPJ*gKhZDcGutcqC3)rG)R|FbPfopP4h5eiWgN#G}!7Up) z%Y1K0{Io)P^Jyh4KPz$WH{EdvY+ZICwx|~Vjg%?m^ok1<`qtmnz?RxGtfuX+>@&@pt;d^HnVQxFYT*}N)~%sV{VT18e354eUj;a~`q|ftSg!Ld5_-x80wI^p3#S zfC3@clmQE5aad2cC|jljS1I06T&1}7^+bluL%5Q~klP4l2o!fq@f?T1Asm~4Gh>7< zr2lR_Ln`ol9s-@A*sHX)3JG2pp=NUSj~A3X1?{Tnj3jbC1MsW>mdug9{Q5#h)?w&g zY0^T@f0Xy}pf*pHzQ26o&vX8qPmI-AkvaBg_n$xq5`^LDDOR&% zL-YH<)xg$2H`7%Ix_LKL@PS5ue*S8WNz&2!%k+GfXvpmx{*@!?L_nXOV?Z{5)B`bDt{&~w9Ec;``+M6HEh^-jB` z>R?bF#ZQlvw@{kZU9faSSNt2^33ng?meM8+O8c>tHcLwT=nZ&AX>ZM^cu0E+`adY; zucegS1=Y^L-PoJAY7Q!Qj%O+Vvs@abD3lR#a3f$r+4Hy$UfmOioL`@}deCTYlS=S) zufzO9qKN(_cdxcwlD(NdIQsBIS-bK6Weg0;ygkKpFCXbV9+}+JgIAZ?ix%a`7_IbPESzgng zUqnZ)4|ke0JC(@03G$rho0Y&KD|~xWUj=lwg`4Aw>6%)HvW*fa94wXCfR-r@uSK^L zMVqSU=U0yzl%on5ctbstm8X?>jvV$$5A{nCaZuTFvX5fh(;kX#X&A#$F%3I=%9-Tg zc7q6>nw%}@PR5s!c`I{Gurwl#F6>Ft(Y@^5dcA*i`@DaVQjh<^==MQxk(LubXmkra z)ZT!?Fdh7NHE>SCSK#Gd{HFL@f#+C+=5aD!+VGr*a6A+C(Gk8yp!od+o}~znXE5Y@ zgewR|2p`X-{B_L$e;u%m@)p#u2szvB`IDa~57^b`t(Dq#S{naEpJwlSbKjeznyA@+ z!~5Rt8hRrK_gm;qw5}Vprvb3c+UH#$<@vpoCmgdxDclY3FK$ymKQwK}ptRI?I63=@ zl=eI5h{VZ<;5O;uo8q^=GGkubN7&*Jn zvkkqGdC5L+kW||$)TWkT=(i|YF`lluecrdgUxx3NVe3%eW^i;=cloN= z>|&eOr&N4KSEcnSsjkcFbGkj|`_HV(k1*1muo`!8E_>g&rs{~`{uu4jl^4SzH#qj7 zw#(kYuX6+y*2oa7kG(g-_f1AyD!-Yc1#jCL1b#Y4&_Hu>GXK0*vxB50yEMCB$7%8X zfT9x0TVhvFSK~hKlTurH#QwFI;%y(!ufoN=Ii>lb9WwR3;yvzT(Epi|1Oj(%q+F-O z@I4`WUx_{`&PKV6^uMW4(?RVh9n{0Wq?_KkVnq6XR*@MqChxAUK<=JCfZKguD=qEZ zi{c?M8&*iySiiy9lcqgIk6rosh}emRurJ%X(yC|+6M^CFAxl6}+pl;Zh32FZ*6`pD zycPa5Iu4kxpHp<`K-F5JCxfm9v>?8X+G?XGaDCoLsm<#|O-j^fM!iqe`FqsaX`}ZV(tu);@|dkd2NgY{*>bPameGQ zvNAq?h~Ep4#+Awt0ly0o79woI_fv?o;CDL0cfjEcyuX4#{dj9S9_3Cf8OA}m>>k1CSLXJ44}b$4a!#{LrvslU z4k>=rs_8h0JF*Ke%X0+jE6y*~uxPEGvkg{Rs5E;gZsYafOfNvX$4dM3b&4#%ru+D6 zgr37;?C#tk=;c!%vzxpAf?L;AIvy{c=EL5}-7-2C~MxAE3u zzua{U&H<>GgFoHw9{rk@7{f#+CFsnu<|WYSRiuQt#xyTU4{~=nnW;<;y@}D@oQ6Am zX)$9LrsznV-AQi^LH<8SSETX#f7}rFkoCZ#Yp_=o1zY?h3PO1*Ir|-GLHIf5jmfAj zvViLSLk@dRuG?~(-si^{au#z?L2$m7eF@$xG=80r9{5OzXvT&RNA1Y-(x7{fYL;{)0rk6ErFF;ihrBw*jPQ32a>U>f`~ zqdXO`Cw)|^5U_*V9w*xr+yCYL;96i;4^H41ctwTYC_GxW&;FNp@>da%2`dUd?ITubKF5&QNa(ynx6!4Jt<QS+O>wX1*2h^C2bD_PVSK^fZ8ua^W_;(JcU7#W7Ahj=MizX=J#3vxx+?`Oflj1w z%}{$bW-)oSBn8;tdmR0Zi8s~~0g)8aSP zuOcm3c?_)bE71ZatOxyu!jC(%;A~tqW+igb)39Qi20Hm$_?7w28wSm)V)t0!>F;rq zbA~Iq=yS~0ou3@xp`yYVX%5BBxR2Fb#+b3>bi`z(vDISJ;&$M!_SrT;$!)My{^(fR zgrKBwk;XofJ`%f%c}svQopgMdaz-{She%@$7zN5?Squ1mQTsI0P+11auML7ZLj6bWBZora4b^(Xo8UD#Par ztZ;$use?u{=+qSdXnyNGa-AerxF=%1o`=q=(oN!Ulh2qfe#+&N=N6rY7mtt1KE}QB z#K}i9VI?K=PkLyL#H(YN?a|tx`0=LQ7`-Zt-md7N_|Yb2JF|CdF4OXuE*KUz0znbR zu}W^E<&a)!+-}*WWA@_i&B;7r9L7y`;&&LeWkOKeRrhA0JeMT7-NW-nr zL579=A|7`n$1mlF07rC=O<1S3wot&uT);)yqSNrK600pMTT=QscA!g2BA~fMsj_Sn zAp~=qjCSe~=-IqFD<}pUAF-okdK}G~hDdQl=Z}kTL|m}$ouVQ7*Y(P{$0&`lnE5vy zt)Q&m2~5IUw*A^~`6-q~{QaJK#H!tgg$7%t?rq6q(=whdE%p=$JA%lmF7cq{A8JSr zc8p0+IsKgQk#Jo&lKbo|;+pE&;r}(sgWIW~+*#1dd)KthlErTkV-w!f9m!Sh^N}M~ z=+HhUi+_@;X#{#Uq0;M@0? zl{;1!AIa^tuE?F?IFeg6i=6ljw=*X37-b_#&366Wq1>+AS65Up=@ILD#H(X=Jc?G> zW`*End@YRf4MqRz1t#vO>7b<^cQEAMyep%0A;}|L%VE)AqSUk3#cj4B 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 KH|A0zV&uh)GC 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 z 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 z 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

Q;}a`wN~SMbNN&dj&7(%CWM-7Jd=+ZjDFhsO`CW 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�!j5X#bG@9GJhqV6SD=8R{mYw}l&Dal7afFL{vA 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 literal 0 HcmV?d00001 diff --git a/android/library/src/main/jniLibs/x86/libserial.so b/android/library/src/main/jniLibs/x86/libserial.so new file mode 100755 index 0000000000000000000000000000000000000000..4e07a11f9289398ccc346a4fd578ce468e05834a GIT binary patch literal 710972 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�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

91T+ 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Œ-AR`@$sXh8iSnwC%CC-hJTrh2KW3PO# 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 literal 0 HcmV?d00001 diff --git a/android/library/src/test/java/serial/android/ExampleUnitTest.java b/android/library/src/test/java/serial/android/ExampleUnitTest.java new file mode 100644 index 0000000..ced0e2d --- /dev/null +++ b/android/library/src/test/java/serial/android/ExampleUnitTest.java @@ -0,0 +1,15 @@ +package serial.android; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * To work on unit tests, switch the Test Artifact in the Build Variants view. + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/android/sample/build.gradle b/android/sample/build.gradle new file mode 100644 index 0000000..6349830 --- /dev/null +++ b/android/sample/build.gradle @@ -0,0 +1,29 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + defaultConfig { + applicationId "serial.android.sample" + minSdkVersion 16 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.1.1' + compile 'com.android.support:design:23.1.1' + + compile project(':library') +} diff --git a/android/sample/proguard-rules.pro b/android/sample/proguard-rules.pro new file mode 100644 index 0000000..9aa02b1 --- /dev/null +++ b/android/sample/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /mnt/android/android-sdk-linux_x86/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/android/sample/sample.iml b/android/sample/sample.iml new file mode 100644 index 0000000..f83ec2c --- /dev/null +++ b/android/sample/sample.iml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/sample/src/androidTest/java/serial/android/sample/ApplicationTest.java b/android/sample/src/androidTest/java/serial/android/sample/ApplicationTest.java new file mode 100644 index 0000000..7f18a97 --- /dev/null +++ b/android/sample/src/androidTest/java/serial/android/sample/ApplicationTest.java @@ -0,0 +1,13 @@ +package serial.android.sample; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/android/sample/src/main/AndroidManifest.xml b/android/sample/src/main/AndroidManifest.xml new file mode 100644 index 0000000..03099b2 --- /dev/null +++ b/android/sample/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + diff --git a/android/sample/src/main/java/serial/android/sample/MainActivity.java b/android/sample/src/main/java/serial/android/sample/MainActivity.java new file mode 100644 index 0000000..728cd46 --- /dev/null +++ b/android/sample/src/main/java/serial/android/sample/MainActivity.java @@ -0,0 +1,250 @@ +package serial.android.sample; + +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Handler; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.Menu; +import android.view.MenuItem; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.ToggleButton; + +import java.io.IOException; + +import serial.PortInfo; +import serial.Serial; +import serial.SerialIOException; + +public class MainActivity extends AppCompatActivity { + + private Spinner mSpinnerPorts; + private boolean mHexMode; + private TextView mTextAvailable; + private TextView mTextOutput; + private TextView mTextInput; + private Button mButtonSend; + private Button mButtonRead; + private ToggleButton mButtonConnectDisconnect; + private Serial mPort; + + private Handler mHandler = new Handler(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + mSpinnerPorts = (Spinner) findViewById(R.id.spinnerPorts); + mTextOutput = (TextView) findViewById(R.id.dataReceived); + mTextInput = (TextView) findViewById(R.id.dataToSend); + mTextAvailable = (TextView) findViewById(R.id.lblAvailable); + + mButtonSend = (Button) findViewById(R.id.btnSend); + mButtonRead = (Button) findViewById(R.id.btnRead); + mButtonConnectDisconnect = (ToggleButton) findViewById(R.id.tbConnect); + } + + @Override + protected void onStart() { + super.onStart(); + loadPorts(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + MenuItem refreshItem = menu.findItem(R.id.action_reload); + refreshItem.setEnabled(mPort == null); + return super.onPrepareOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + boolean handled = true; + switch (id) { + case R.id.action_reload: + loadPorts(); + break; + case R.id.action_hex: + item.setChecked(!item.isChecked()); + mHexMode = item.isChecked(); + clearInput(); + clearOutput(); + Toast.makeText(MainActivity.this, "Not implemented.", Toast.LENGTH_SHORT).show(); + break; + default: + handled = false; + break; + } + + + return handled || super.onOptionsItemSelected(item); + } + + private void clearOutput() { + mTextOutput.setText(""); + } + + private void clearInput() { + mTextInput.setText(""); + } + + private void loadPorts() { + PortInfo[] ports = Serial.listPorts(); + PortAdapter adapter = new PortAdapter(getApplicationContext(), ports); + mSpinnerPorts.setAdapter(adapter); + mButtonConnectDisconnect.setChecked(false); + mButtonConnectDisconnect.setEnabled(!adapter.isEmpty()); + } + + public void onConnectDisconnectClick(View view) { + if (mPort != null) { + try { + mPort.close(); + } catch (IOException e) { + // Never get here + } + mSpinnerPorts.setEnabled(true); + mButtonRead.setEnabled(false); + mButtonSend.setEnabled(false); + mTextInput.setEnabled(false); + mPort = null; + } else { + clearInput(); + clearOutput(); + PortInfo portInfo = (PortInfo) mSpinnerPorts.getSelectedItem(); + Serial port; + try { + port = new Serial.Builder(portInfo.port, Serial.BAUDRATE_115200).create(); + if (port.isValid() && port.isOpen()) { + mPort = port; + mSpinnerPorts.setEnabled(false); + mButtonRead.setEnabled(true); + mButtonSend.setEnabled(true); + mTextInput.setEnabled(true); + checkAvailableData(); + } + } catch (SerialIOException e) { + Toast.makeText(MainActivity.this, getString(R.string.toast_connect_failed, portInfo.port), Toast.LENGTH_SHORT).show(); + mTextOutput.setText(e.getMessage()); + mButtonConnectDisconnect.setChecked(false); + } + } + } + + public void onSendClick(View view) { + if (mPort != null) { + String text = mTextInput.getText().toString(); + try { + int bytesWritten = mPort.write(text); + updateAvailableData(); + clearInput(); + Toast.makeText(MainActivity.this, getString(R.string.toast_send_success, bytesWritten, mPort.getPort()), Toast.LENGTH_SHORT).show(); + } catch (SerialIOException e) { + Toast.makeText(MainActivity.this, getString(R.string.toast_send_failed, mPort.getPort()), Toast.LENGTH_SHORT).show(); + mTextOutput.setText(e.getMessage()); + } + } + } + + public void onReadClick(View view) { + if (mPort != null) { + String[] lines; + try { + clearOutput(); + byte[] data = mPort.read(); + String s = new String(data); + mTextOutput.append(s); + Toast.makeText(MainActivity.this, getString(R.string.toast_read_success, data.length, mPort.getPort()), Toast.LENGTH_SHORT).show(); + updateAvailableData(); + } catch (SerialIOException e) { + Toast.makeText(MainActivity.this, getString(R.string.toast_send_failed, mPort.getPort()), Toast.LENGTH_SHORT).show(); + mTextOutput.setText(e.getMessage()); + } + } + } + + private void updateAvailableData() { + updateAvailableData(100L); + } + + private void updateAvailableData(long timeout) { + if (timeout <= 0) { + checkAvailableData(); + } else { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + checkAvailableData(); + } + }, timeout); + } + } + + private void checkAvailableData() { + try { + mTextAvailable.setText(getString(R.string.hint_available_bytes, mPort.available())); + } catch (SerialIOException e) { + mTextAvailable.setText(R.string.hint_unknown_bytes); + e.printStackTrace(); + } + } + + private static class PortAdapter extends ArrayAdapter { + + public PortAdapter(Context context, PortInfo[] ports) { + super(context, android.R.layout.simple_spinner_item, android.R.id.text1, ports); + setDropDownViewResource(android.R.layout.simple_list_item_2); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View view = super.getView(position, convertView, parent); + if (view != convertView) { + // We created a new view. + TextView textView = (TextView)view; + textView.setTextColor(Color.BLACK); + } + return view; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + View view = super.getDropDownView(position, convertView, parent); + if (view != convertView) { + // We created a new view. + TextView descriptionView = (TextView)view.findViewById(android.R.id.text1); + TextView portView = (TextView)view.findViewById(android.R.id.text2); + PortInfo portInfo = getItem(position); + descriptionView.setText(portInfo.description); + descriptionView.setTextColor(Color.BLACK); + portView.setText(portInfo.port); + portView.setTextColor(Color.BLACK); + } + return view; + } + } +} diff --git a/android/sample/src/main/res/layout/activity_main.xml b/android/sample/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..a37a5c3 --- /dev/null +++ b/android/sample/src/main/res/layout/activity_main.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/android/sample/src/main/res/layout/content_main.xml b/android/sample/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..125f59c --- /dev/null +++ b/android/sample/src/main/res/layout/content_main.xml @@ -0,0 +1,144 @@ + + + + + + + + + +

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 SOOLpG^Uo=8r@a98xc>u!@kw3) literal 0 HcmV?d00001 diff --git a/android/library/src/main/jniLibs/x86/gdb.setup b/android/library/src/main/jniLibs/x86/gdb.setup new file mode 100644 index 0000000..1fc8c7e --- /dev/null +++ b/android/library/src/main/jniLibs/x86/gdb.setup @@ -0,0 +1,3 @@ +set solib-search-path /mnt/workspace/serial/android/library/src/main/obj/local/x86 +source /mnt/android/android-ndk-r10c/prebuilt/common/gdb/common.setup +directory /mnt/android/android-ndk-r10c/platforms/android-16/arch-x86/usr/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++ /mnt/workspace/serial/android/library/src/main/jni/libs/nativehelper/include/nativehelper /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include /mnt/android/android-ndk-r10c/sources/cxx-stl/gnu-libstdc++/4.6/include/backward /mnt/workspace/serial/android/library/src/main/jni/include diff --git a/android/library/src/main/jniLibs/x86/gdbserver b/android/library/src/main/jniLibs/x86/gdbserver new file mode 100755 index 0000000000000000000000000000000000000000..270f5bf0d7896825146f29479aebe5c5b387ffd8 GIT binary patch literal 623400 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