diff options
Diffstat (limited to 'java/jni/tinyb/DBusManager.cxx')
-rw-r--r-- | java/jni/tinyb/DBusManager.cxx | 352 |
1 files changed, 0 insertions, 352 deletions
diff --git a/java/jni/tinyb/DBusManager.cxx b/java/jni/tinyb/DBusManager.cxx deleted file mode 100644 index e3abf7ba..00000000 --- a/java/jni/tinyb/DBusManager.cxx +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Author: Andrei Vasiliu <[email protected]> - * Copyright (c) 2016 Intel Corporation. - * - * 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. - */ - -#include "tinyb/BluetoothAdapter.hpp" -#include "tinyb/BluetoothDevice.hpp" -#include "tinyb/BluetoothGattService.hpp" -#include "tinyb/BluetoothManager.hpp" - -#include "tinyb_dbus_DBusManager.h" - -#include "helper_tinyb.hpp" - -using namespace tinyb; -using namespace jau; - -jobject Java_tinyb_dbus_DBusManager_getBluetoothType(JNIEnv *env, jobject obj) -{ - try { - (void)obj; - - return get_bluetooth_type(env, "NONE"); - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -static void getObject_setter(JNIEnv *env, - jstring name, std::string **name_to_write, - jstring identifier, std::string **identifier_to_write, - jobject parent, BluetoothObject **b_parent) -{ - try { - if (!parent) - { - *b_parent = nullptr; - } - else - { - *b_parent = getInstance<BluetoothObject>(env, parent); - } - - if (!name) - { - *name_to_write = nullptr; - } - else - { - *name_to_write = new std::string(from_jstring_to_string(env, name)); - } - - if (!identifier) - { - *identifier_to_write = nullptr; - } - else - { - *identifier_to_write = new std::string(from_jstring_to_string(env, identifier)); - } - } catch(...) { - rethrow_and_raise_java_exception(env); - } -} - -static void getObject_cleaner(std::string *name_to_write, std::string *identifier_to_write) -{ - if (name_to_write != nullptr) - delete name_to_write; - - if (identifier_to_write != nullptr) - delete identifier_to_write; -} - -jobject Java_tinyb_dbus_DBusManager_find(JNIEnv *env, jobject obj, jint type, - jstring name, jstring identifier, jobject parent, - jlong milliseconds) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - BluetoothObject *b_parent; - BluetoothType b_type; - std::string *name_to_write; - std::string *identifier_to_write; - - getObject_setter(env, - name, &name_to_write, - identifier, &identifier_to_write, - parent, &b_parent); - - b_type = from_int_to_btype((int)type); - std::unique_ptr<BluetoothObject> b_object = manager->find(b_type, name_to_write, - identifier_to_write, - b_parent, - std::chrono::milliseconds(milliseconds)); - getObject_cleaner(name_to_write, identifier_to_write); - - BluetoothObject *b_object_naked = b_object.release(); - if (!b_object_naked) - { - return nullptr; - } - jclass clazz = search_class(env, *b_object_naked); - jmethodID clazz_ctor = search_method(env, clazz, "<init>", "(J)V", false); - - jobject result = env->NewObject(clazz, clazz_ctor, (jlong)b_object_naked); - - return result; - - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - - -jobject Java_tinyb_dbus_DBusManager_getObject(JNIEnv *env, jobject obj, jint type, - jstring name, jstring identifier, jobject parent) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - BluetoothObject *b_parent; - BluetoothType b_type; - std::string *name_to_write; - std::string *identifier_to_write; - - getObject_setter(env, - name, &name_to_write, - identifier, &identifier_to_write, - parent, &b_parent); - - b_type = from_int_to_btype((int)type); - std::unique_ptr<BluetoothObject> b_object = manager->get_object(b_type, name_to_write, - identifier_to_write, - b_parent); - getObject_cleaner(name_to_write, identifier_to_write); - - BluetoothObject *b_object_naked = b_object.release(); - if (!b_object_naked) - { - return nullptr; - } - jclass clazz = search_class(env, *b_object_naked); - jmethodID clazz_ctor = search_method(env, clazz, "<init>", "(J)V", false); - - jobject result = env->NewObject(clazz, clazz_ctor, (jlong)b_object_naked); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -jobject Java_tinyb_dbus_DBusManager_getObjects(JNIEnv *env, jobject obj, jint type, - jstring name, jstring identifier, jobject parent) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - BluetoothObject *b_parent; - BluetoothType b_type; - std::string *name_to_write; - std::string *identifier_to_write; - - getObject_setter(env, - name, &name_to_write, - identifier, &identifier_to_write, - parent, &b_parent); - - b_type = from_int_to_btype((int)type); - std::vector<std::unique_ptr<BluetoothObject>> array = manager->get_objects(b_type, - name_to_write, - identifier_to_write, - b_parent); - getObject_cleaner(name_to_write, identifier_to_write); - jobject result = convert_vector_uniqueptr_to_jarraylist<std::vector<std::unique_ptr<BluetoothObject>>, BluetoothObject>( - env, array, "(J)V"); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -jobject Java_tinyb_dbus_DBusManager_getAdapters(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - - std::vector<std::unique_ptr<BluetoothAdapter>> array = manager->get_adapters(); - jobject result = convert_vector_uniqueptr_to_jarraylist<std::vector<std::unique_ptr<BluetoothAdapter>>, BluetoothAdapter>( - env, array, "(J)V"); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -jobject Java_tinyb_dbus_DBusManager_getDevices(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - - std::vector<std::unique_ptr<BluetoothDevice>> array = manager->get_devices(); - jobject result = convert_vector_uniqueptr_to_jarraylist<std::vector<std::unique_ptr<BluetoothDevice>>, BluetoothDevice>( - env, array, "(J)V"); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -jobject Java_tinyb_dbus_DBusManager_getServices(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - - std::vector<std::unique_ptr<BluetoothGattService>> array = manager->get_services(); - jobject result = convert_vector_uniqueptr_to_jarraylist<std::vector<std::unique_ptr<BluetoothGattService>>, BluetoothGattService>( - env, array, "(J)V"); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} - -jboolean Java_tinyb_dbus_DBusManager_setDefaultAdapter(JNIEnv *env, jobject obj, jobject adapter) -{ - try { - if (adapter == nullptr) - throw std::invalid_argument("adapter argument is null\n"); - - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - BluetoothAdapter *b_adapter = getInstance<BluetoothAdapter>(env, adapter); - - return manager->set_default_adapter(*b_adapter); - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return JNI_FALSE; -} - -jobject Java_tinyb_dbus_DBusManager_getDefaultAdapter(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - - std::unique_ptr<tinyb::BluetoothAdapter> b_adapter = manager->get_default_adapter(); - BluetoothAdapter *b_adapter_naked = b_adapter.release(); - if (!b_adapter_naked) - { - return nullptr; - } - jclass clazz = search_class(env, *b_adapter_naked); - jmethodID clazz_ctor = search_method(env, clazz, "<init>", "(J)V", false); - - jobject result = env->NewObject(clazz, clazz_ctor, (jlong)b_adapter_naked); - return result; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return NULL; -} - -jboolean Java_tinyb_dbus_DBusManager_startDiscovery(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - return manager->start_discovery() ? JNI_TRUE : JNI_FALSE; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return JNI_FALSE; -} - -jboolean Java_tinyb_dbus_DBusManager_stopDiscoveryImpl(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - return manager->start_discovery() ? JNI_TRUE : JNI_FALSE; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return JNI_FALSE; -} - -jboolean Java_tinyb_dbus_DBusManager_getDiscovering(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - return manager->get_discovering() ? JNI_TRUE : JNI_FALSE; - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return JNI_FALSE; -} - -void Java_tinyb_dbus_DBusManager_init(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = BluetoothManager::get_bluetooth_manager(); - setInstance<BluetoothManager>(env, obj, manager); - } catch(...) { - rethrow_and_raise_java_exception(env); - } -} - -void Java_tinyb_dbus_DBusManager_delete(JNIEnv *env, jobject obj) -{ - try { - BluetoothManager *manager = getInstance<BluetoothManager>(env, obj); - (void) manager; - // delete manager; // Should not be called! - } catch(...) { - rethrow_and_raise_java_exception(env); - } -} - -jstring Java_tinyb_dbus_DBusManager_getNativeAPIVersion(JNIEnv *env, jclass clazz) -{ - try { - (void) clazz; - - BluetoothManager *manager = BluetoothManager::get_bluetooth_manager(); - return env->NewStringUTF(manager->get_api_version().c_str()); - } catch(...) { - rethrow_and_raise_java_exception(env); - } - return nullptr; -} |