3f75e2ad3750d99158a28def2c0ed60b921b3fbb
[profile/ivi/settings-daemon.git] / plugins / connman / service.hpp
1 /**
2  * @file service.hpp
3  *
4  * @brief Connman service request handling.
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_SERVICE_HPP
28 #define IVI_SETTINGS_CONNMAN_SERVICE_HPP
29
30 #include "connman.hpp"
31 #include "connman_manager.hpp"
32
33
34 namespace ivi
35 {
36   namespace settings
37   {
38     class response_callback;
39
40     /**
41      * @class service
42      *
43      * @brief Connman Service object proxy.
44      *
45      * This class exposes functionality found in the connman
46      * @c Service interface to the caller.
47      */
48     class service
49     {
50     public:
51
52       /**
53        * Constructor.
54        *
55        * @param[in] service_path The D-Bus object path for connman
56        *                         service.
57        * @param[in] connection   Underlying D-Bus connection.
58        * @param[in] e            Callback through which events will be
59        *                         sent to clients.
60        */
61       service(std::string service_path,
62               GDBusConnection * connection,
63               event_callback const & e);
64
65       /// Connect to the service.
66       void connect(response_callback response);
67
68       /// Disconnect from the service.
69       void disconnect(response_callback response);
70
71     private:
72
73       /**
74        * Call the method @a name on the connman Service object.
75        *
76        * @param[in]    name     The connman Service object method
77        *                        name.
78        * @param[inout] response Callback used to inform the caller of
79        *                        success or failure.
80        */
81       void call_method(char const * name,
82                        response_callback response);
83
84     private:
85
86       /// The proxy used to access the connman Service D-Bus API.
87       connman connman_;
88
89     };
90
91   }
92 }
93
94
95 #endif  /* IVI_SETTINGS_CONNMAN_SERVICE_HPP */
96
97
98 // Local Variables:
99 // mode:c++
100 // c-basic-offset:2
101 // indent-tabs-mode: nil
102 // End: