Fix TIVI-{1191,1192,2108} by implementing a connman 'Agent'.
[profile/ivi/settings-daemon.git] / plugins / connman / connman_technology.hpp
1 /**
2  * @file connman_technology.hpp
3  *
4  * @brief Connman Technology-based settings plugin header.
5  *
6  * @author Ossama Othman @<ossama.othman@@intel.com@>
7  *
8  * @copyright @par
9  * Copyright 2013 Intel Corporation All Rights Reserved.
10  * @par
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation;
14  * version 2.1 of the License.
15  * @par
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Lesser General Public License for more details.
20  * @par
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with this library; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
24  * Boston, MA  02110-1301  USA
25  */
26
27 #ifndef IVI_SETTINGS_CONNMAN_CONNMAN_TECHNOLOGY_HPP
28 #define IVI_SETTINGS_CONNMAN_CONNMAN_TECHNOLOGY_HPP
29
30 #include "connman.hpp"
31
32 #include <settingsd/plugin.hpp>
33
34 #include <gio/gio.h>
35
36 #include <string>
37
38
39 namespace ivi
40 {
41   namespace settings
42   {
43     class connman_manager;
44
45     /**
46      * @class connman_technology
47      *
48      * @brief D-Bus Connman Technology object bridge.
49      *
50      * This class exposes the Connman Technology D-Bus API through the
51      * settings daemon WebSocket API.
52      */
53     class connman_technology : public plugin
54     {
55     public:
56
57       /// Constructor.
58       connman_technology(GDBusConnection * connection,
59                          connman_manager & manager);
60
61       /// Destructor.
62       ~connman_technology();
63
64       /**
65        * @name Settings Plugin API
66        *
67        * Interface defined by the @c ivi::settings::plugin abstract
68        * base class.
69        *
70        * @see settingsd/plugin.hpp
71        */
72       //@{
73       virtual std::string const & id() const;
74       virtual void handle_request(std::string request,
75                                   response_callback response);
76       //@}
77
78     private:
79
80       /// The proxy used to access the connman Technology D-Bus API.
81       connman connman_;
82
83       /// The proxy used to access the connman Manager D-Bus API.
84       connman_manager & manager_;
85
86     };
87
88   }
89 }
90
91
92 #endif  /* IVI_SETTINGS_CONNMAN_CONNMAN_TECHNOLOGY_HPP */
93
94
95 // Local Variables:
96 // mode:c++
97 // c-basic-offset:2
98 // indent-tabs-mode: nil
99 // End: