summaryrefslogtreecommitdiffstats
path: root/java/org/tinyb/BluetoothGattDescriptor.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2020-02-09 08:50:22 +0100
committerSven Gothel <[email protected]>2020-02-09 08:50:22 +0100
commit4f99bad3abcabb2c37ef6543ec5ed8467914cd53 (patch)
tree5848e3fdaa3ebc2acc6f6ca0abae517b0b6253a2 /java/org/tinyb/BluetoothGattDescriptor.java
parent0c76e289ad011f1c616176a896da02e9b255275e (diff)
Java Refactory: Expose intefaces via org.tinyb.* and D-Bus implementation via tinyb.dbus.*
Allows alternative interface implementations and delegated wrapper implementations for debug and tracing. Original D-Bus implementation can be retrieved via: 'BluetoothManager org.tinyb.BluetoothFactory.getDBusBluetoothManager()' A HCI native implementation will follow up w/o use of D-Bus. Otherwise the Java API is unchanged and this tinyb can replace previous implementation. Due to the major API change (despite interface is unchanged but BluetoothManager instantiation) the jar file has been renamed from 'tinyb.jar' to 'tinyb2.jar'. Same goes with the version number, which will be set to 'v2.0.0'. The native library and class definition is kept unchanged using the original names so far.
Diffstat (limited to 'java/org/tinyb/BluetoothGattDescriptor.java')
-rw-r--r--java/org/tinyb/BluetoothGattDescriptor.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/java/org/tinyb/BluetoothGattDescriptor.java b/java/org/tinyb/BluetoothGattDescriptor.java
new file mode 100644
index 00000000..4ccdf2d6
--- /dev/null
+++ b/java/org/tinyb/BluetoothGattDescriptor.java
@@ -0,0 +1,84 @@
+/**
+ * Author: Sven Gothel <[email protected]>
+ * Copyright (c) 2020 Gothel Software e.K.
+ * Copyright (c) 2020 ZAFENA AB
+ *
+ * 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.
+ */
+
+package org.tinyb;
+
+/**
+ * Provides access to Bluetooth GATT descriptor. Follows the BlueZ adapter API
+ * available at: http://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/gatt-api.txt
+ */
+public interface BluetoothGattDescriptor extends BluetoothObject
+{
+ @Override
+ public BluetoothGattDescriptor clone();
+
+ /* D-Bus method calls: */
+
+ /** Reads the value of this descriptor
+ * @return A vector<uchar> containing data from this descriptor
+ */
+ public byte[] readValue();
+
+ /** Writes the value of this descriptor.
+ * @param[in] arg_value The data as vector<uchar>
+ * to be written packed in a GBytes struct
+ * @return TRUE if value was written succesfully
+ */
+ public boolean writeValue(byte[] argValue) throws BluetoothException;
+
+ /**
+ * Enables notifications for the value and calls run function of the BluetoothNotification
+ * object.
+ * @param callback A BluetoothNotification<byte[]> object. Its run function will be called
+ * when a notification is issued. The run function will deliver the new value of the value
+ * property.
+ */
+ public void enableValueNotifications(BluetoothNotification<byte[]> callback);
+ /**
+ * Disables notifications of the value and unregisters the callback object
+ * passed through the corresponding enable method.
+ */
+ public void disableValueNotifications();
+
+ /* D-Bus property accessors: */
+
+ /** Get the UUID of this descriptor.
+ * @return The 128 byte UUID of this descriptor, NULL if an error occurred
+ */
+ public String getUUID();
+
+ /** Returns the characteristic to which this descriptor belongs to.
+ * @return The characteristic.
+ */
+ public BluetoothGattCharacteristic getCharacteristic();
+
+ /** Returns the cached value of this descriptor, if any.
+ * @return The cached value of this descriptor.
+ */
+ public byte[] getValue();
+}