Platform Development
Material download:
Maemo Chinook Platform Development training material is available here.
Maemo Chinook Platform Development
- introduction to maemo platform and service development
- maemo Getting Started and Application Development as prerequisite
- can be used (together with Getting Started) as independent training material
- planned to be 2 day class room course
- course content as html is available here
Table of Contents:
- Introduction
- Introduction to maemo Platform Development
- Chapter 01 - D-Bus, The Message Bus System
- Introduction to D-Bus
- D-Bus architecture and terminology
- Addressing and names in D-Bus
- Role of D-Bus in maemo
- Programming directly with libdbus
- Chapter 02 - LibOSSO
- Introduction to LibOSSO
- Using LibOSSO for D-Bus method calls
- Asynchronous method calls with LibOSSO
- Device state and mode notifications
- Simulating device mode changes
- Chapter 03 - Using the GLib wrappers for D-Bus
- Introduction to GObjects
- D-Bus interface definition using XML
- Generating automatic stub code
- Creating a simple GObject for D-Bus
- Publishing a GType on the D-Bus
- Using the GLib/D-Bus wrapper from a client
- D-Bus introspection
- Chapter 04 - Implementing and using D-Bus signals
- D-Bus Signal properties
- Declaring signals in the interface XML
- Emitting signals from a GObject
- Catching signals in GLib/D-Bus clients
- Tracing D-Bus signals
- Chapter 05 - Asynchronous GLib/D-Bus
- Asynchronicity in D-Bus clients
- Slow test server
- Asynchronous method calls using stubs
- Problems with asynchronicity
- Asynchronous method calls using GLib wrappers
- Chapter 06 - Asynchronous GConf
- Listening to changes in GConf
- Implementing notifications on changes in GConf
- Chapter 07 - D-Bus server design issues
- Definition of a server
- Daemonization
- Event loops and power consumption
- Supporting parallel requests
- Debugging
- APPENDIX A - Source code for the libdbus example
- libdbus-example/dbus-example.c
- libdbus-example/Makefile
- APPENDIX B - Source code for the LibOSSO RPC examples
- libosso-example-sync/libosso-rpc-sync.c
- libosso-example-sync/Makefile
- libosso-example-async/libosso-rpc-async.c
- libosso-example-async/Makefile
- APPENDIX C - Source code for flashlight
- libosso-flashlight/flashlight.c
- libosso-flashlight/Makefile
- APPENDIX D - Source code for the GLib/D-Bus synchronous example
- glib-dbus-sync/common-defs.h
- glib-dbus-sync/value-dbus-interface.xml
- glib-dbus-sync/server.c
- glib-dbus-sync/client.c
- glib-dbus-sync/Makefile
- APPENDIX E - Source code for the GLib/D-Bus signal example
- glib-dbus-signals/common-defs.h
- glib-dbus-signals/value-dbus-interface.xml
- glib-dbus-signals/server.c
- glib-dbus-signals/client.c
- glib-dbus-signals/Makefile
- APPENDIX F - Source code for the GLib/D-Bus asynchronous examples
- glib-dbus-async/common-defs.h
- glib-dbus-async/value-dbus-interface.xml
- glib-dbus-async/server.c
- glib-dbus-async/client-stubs.c
- glib-dbus-async/client-glib.c
- glib-dbus-async/Makefile
- APPENDIX G - Source code for the asynchronous GConf example
- gconf-listener/gconf-key-watch.c
- gconf-listener/Makefile