add more spacing
[personal-kdebase.git] / workspace / solid / networking / DESIGN
blobc94049562807b521f27b0a0cd58fbe75b2f92d2e
1 The system consists of 3 classes of components:
3 1) Network service applications
4   Responsible for reporting the status of the system's network connection(s).  May be a KDE app or
5 anything (including a system networking script) that can talk DBus.  These are responsible for registering networks with, and updating their status at:
7 2) KDED Module - networkstatus
8   Hub of the system.  Implements two DBus interfaces at org.kde.kded /modules/networkstatus,
9   org.kde.Solid.Networking.Service (for use by service applications, above) and
10   org.kde.Solid.Networking.Client (for client apps, below) networkstatus knows of the status of any networks registered with it, which it aggregates and reports the most connected status onwards, to:
12 3) Network client applications {
13   Regular KDE applications which need to use the network.  These either listen directly to
14 org.kde.kded /modules/networkstatus' signals, or use the Solid::Networking namespaces' functions and notifier() object to react to
15 network status changes.
17 UI Components
18 The KIO library contains a widget, KStatusBarOfflineIndicator, which is
19 intended for use in applications' status bars.  This widget shows itself when the system is offline, and
20 hides itself when the system is connected.
22 KConnectionManager
23 As well as signalling status changes, Solid::Networking can signal when an app should connect, and should disconnect, based on a ConnectionPolicy setting.
25 Layout
26 kdelibs/solid/solid/networking.*
27   Main client app facing functions
28 kdelibs/kio/kio/ksstatusbarofflineindicator.*
29   Status bar widget
30 kdebase/workspace/solid/networking
31   KDED module, service definition and this file.  Test service and client GUI
32   applications which make it easy to simulate network events and observe their
33   effect on a client (which has a queued/autoconnect function with its 
34   simulated network usage).  Final destination: kdebase/runtime/solid
35 kdebase/workspace/libs/solid/control
36   Library for writing network control applications.  Provides the interface 
37   for pluggable backends addressing different platforms' networking
38   subsystems.  As of KDE 4.0 the control function is incomplete and only the
39   network status reporting functions is completely specified.
40 kdebase/workspace/solid/networkmanager-*
41   Backends for different NetworkManager versions.