TIVI-1924: Initial commit of IVI settings daemon.
[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        */
58       service(std::string service_path);
59
60       /// Connect to the service.
61       void connect(response_callback response);
62
63       /// Disconnect from the service.
64       void disconnect(response_callback response);
65
66     private:
67
68       /**
69        * Call the method @a name on the connman Service object.
70        *
71        * @param[in]    name     The connman Service object method
72        *                        name.
73        * @param[inout] response Callback used to inform the caller of
74        *                        success or failure.
75        */
76       void call_method(char const * name,
77                        response_callback response);
78
79     private:
80
81       /// The proxy used to access the connman Service D-Bus API.
82       connman connman_;
83
84     };
85
86   }
87 }
88
89
90 #endif  /* IVI_SETTINGS_CONNMAN_SERVICE_HPP */
91
92
93 // Local Variables:
94 // mode:c++
95 // c-basic-offset:2
96 // indent-tabs-mode: nil
97 // End: