SoC progress report - bluez-gnome



Bluetooth soc report

Hi everyone,

I am now in the process of designing D-Bus API for the new
obex-data-server so no code yet.  This API will have objects both for
dealing with OBEX servers and clients. 

As you might already know, OBEX is protocol for OBject EXchange and it
can be used with different means of communication (Bluetooth, Irda, USB
cable and TCP/IP). Although I might fully implement only Bluetooth
support, I have to keep this in mind when designing API.

Currently I have come up with such classes:
BluetoothOBEXManager
IrdaOBEXManager
TtyOBEXManager
InetOBEXManager
OBEXClient (abstract, not exposed through D-Bus)
|-- BluetoothOBEXClient
|-- IrdaOBEXClient
|-- TtyOBEXClient
|-- InetOBEXClient
OBEXServer (abstract, not exposed through D-Bus)
|-- BluetoothOBEXServer
|-- IrdaOBEXServer
|-- TtyOBEXServer
|-- InetOBEXServer

Manager objects will have functions for getting D-Bus object paths to
particular clients/servers (e.g. BluetoothOBEXClient for Bluetooth
adapter hci0 targeting remote device with particular Bluetooth address).
Client objects will extend base class OBEXClient and will provide OBEX
Object Push and OBEX FTP client functionality. The same with Server
objects.

While API design is nowhere near completion, I'm already thinking about
implementation details. Here goes the list of libraries that could/will
be used:
  openobex (low-level OBEX functionality)
  openobex-glib (high-level OBEX Object Push client functionality;
probably I will just fork the useful parts)
  obexftp (OBEX FTP client and server functionality, quiet immature code
base; I will have to fork this too)
  bluez D-Bus API (Bluetooth device discovery and stuff like that)
There are also some other libraries that I will not use, but I have
looked at them:
  osso-obexsrv (OBEX Object Push server for Maemo platform; has D-Bus
API)
  osso-gwobex (OBEX Object Push and FTP client library for Maemo
platform)
  libbtctl (glib-style library; OBEX Object Push server and client
functionality; out-of-date code base)

So as you see there is a hell lot of libraries (and code duplication),
but nothing complete. Once I complete D-Bus API, I will start bringing
everything into one place. And only after that you will get to see some
screenshots :)

Cheers,
Tadas Dailyda





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]