aboutsummaryrefslogtreecommitdiff
path: root/examples/provider/README.md
blob: 6c3f61abf6ac2213ccf198bcef4ea7f69cd6b871 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# libweave provider examples

This directory contains example implementations of `weave` system providers.

## Providers

-   `avahi_client.cc`

    -   implements: `weave::providerDnsServiceDiscovery`
    -   build-depends: libavahi-client
    -   run-depends: `avahi-daemon`

-   `bluez_client.cc`

    -   not-implemented

-   `curl_http_client.cc`

    -   implements: `weave::provider::HttpClient`
    -   build-depends: libcurl

-   `event_http_server.cc`

    -   implements: `weave::provider::HttpServer`
    -   build-depends: libevhtp

-   `event_network.cc`

    -   implements: `weave::provider::Network`
    -   build-depends: libevent

-   `event_task_runner.cc`

    -   implements: `weave::provider::TaskRunner`
    -   build-depends: libevent

-   `file_config_store.cc`

    -   implements: `weave::provider::ConfigStore`

-   `wifi_manager.cc`

    -   implements: `weave::provider::Wifi`
    -   build-depends: `weave::examples::EventNetworkImpl`
    -   run-depends: `network-manager`, `dnsmasq`, `hostapd`

## Note

-   The example providers are based on `libevent` and should be portable between
    most GNU/Linux distributions.
-   `weave::examples::WifiImpl` currently shells out to system command tools
    like `nmcli`, `dnsmasq`, `ifconfig` and `hostpad`.