Initial import to Git
[profile/ivi/common-api-dbus-runtime.git] / src / test / commonapi / tests / TestInterfaceDBusProxy.cpp
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #include "TestInterfaceDBusProxy.h"
5
6 namespace commonapi {
7 namespace tests {
8
9 std::shared_ptr<CommonAPI::DBus::DBusProxy> createTestInterfaceDBusProxy(const char* busName,
10                                        const char* objectPath,
11                                        std::shared_ptr<CommonAPI::DBus::DBusProxyConnection> dbusProxyConnection) {
12     return std::make_shared<TestInterfaceDBusProxy>(busName, objectPath, dbusProxyConnection);
13 }
14
15 __attribute__((constructor)) void registerTestInterfaceDBusProxy(void) {
16     CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(TestInterface::getInterfaceName(),
17        &createTestInterfaceDBusProxy);
18 }
19
20 TestInterfaceDBusProxy::TestInterfaceDBusProxy(const std::string& busName, const std::string& objectPath, const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection):
21         CommonAPI::DBus::DBusProxy(busName, objectPath, TestInterface::getInterfaceName(), dbusProxyconnection)
22 ,        testPredefinedTypeAttribute_(*this, "onTestPredefinedTypeAttributeAttributeChanged", "setTestPredefinedTypeAttributeAttribute", "u", "getTestPredefinedTypeAttributeAttribute"),
23         testDerivedStructAttribute_(*this, "onTestDerivedStructAttributeAttributeChanged", "setTestDerivedStructAttributeAttribute", "(sqi)", "getTestDerivedStructAttributeAttribute"),
24         testDerivedArrayAttribute_(*this, "onTestDerivedArrayAttributeAttributeChanged", "setTestDerivedArrayAttributeAttribute", "at", "getTestDerivedArrayAttributeAttribute")
25 ,        testPredefinedTypeBroadcast_(*this, "TestPredefinedTypeBroadcast", "us")
26                  {
27 }
28
29 TestInterfaceDBusProxy::TestPredefinedTypeAttributeAttribute& TestInterfaceDBusProxy::getTestPredefinedTypeAttributeAttribute() {
30     return testPredefinedTypeAttribute_;
31 }
32 TestInterfaceDBusProxy::TestDerivedStructAttributeAttribute& TestInterfaceDBusProxy::getTestDerivedStructAttributeAttribute() {
33     return testDerivedStructAttribute_;
34 }
35 TestInterfaceDBusProxy::TestDerivedArrayAttributeAttribute& TestInterfaceDBusProxy::getTestDerivedArrayAttributeAttribute() {
36     return testDerivedArrayAttribute_;
37 }
38
39 TestInterfaceDBusProxy::TestPredefinedTypeBroadcastEvent& TestInterfaceDBusProxy::getTestPredefinedTypeBroadcastEvent() {
40     return testPredefinedTypeBroadcast_;
41 }
42
43 void TestInterfaceDBusProxy::testVoidPredefinedTypeMethod(const uint32_t& uint32Value, const std::string& stringValue, CommonAPI::CallStatus& callStatus) {
44     CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string>,
45                                      CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply(
46         *this,
47         "testVoidPredefinedTypeMethod",
48         "us",
49         uint32Value, stringValue, 
50         callStatus
51         );
52 }
53 std::future<CommonAPI::CallStatus> TestInterfaceDBusProxy::testVoidPredefinedTypeMethodAsync(const uint32_t& uint32Value, const std::string& stringValue, TestVoidPredefinedTypeMethodAsyncCallback callback) {
54     return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string>,
55                                      CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync(
56         *this,
57         "testVoidPredefinedTypeMethod",
58         "us",
59         uint32Value, stringValue, 
60         std::move(callback));
61 }
62 void TestInterfaceDBusProxy::testPredefinedTypeMethod(const uint32_t& uint32InValue, const std::string& stringInValue, CommonAPI::CallStatus& callStatus, uint32_t& uint32OutValue, std::string& stringOutValue) {
63     CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string>,
64                                      CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string> >::callMethodWithReply(
65         *this,
66         "testPredefinedTypeMethod",
67         "us",
68         uint32InValue, stringInValue, 
69         callStatus
70         , uint32OutValue, stringOutValue);
71 }
72 std::future<CommonAPI::CallStatus> TestInterfaceDBusProxy::testPredefinedTypeMethodAsync(const uint32_t& uint32InValue, const std::string& stringInValue, TestPredefinedTypeMethodAsyncCallback callback) {
73     return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string>,
74                                      CommonAPI::DBus::DBusSerializableArguments<uint32_t, std::string> >::callMethodAsync(
75         *this,
76         "testPredefinedTypeMethod",
77         "us",
78         uint32InValue, stringInValue, 
79         std::move(callback));
80 }
81 void TestInterfaceDBusProxy::testVoidDerivedTypeMethod(const DerivedTypeCollection::TestEnumExtended2& testEnumExtended2Value, const DerivedTypeCollection::TestMap& testMapValue, CommonAPI::CallStatus& callStatus) {
82     CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap>,
83                                      CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply(
84         *this,
85         "testVoidDerivedTypeMethod",
86         "ia{ua(sq)}",
87         testEnumExtended2Value, testMapValue, 
88         callStatus
89         );
90 }
91 std::future<CommonAPI::CallStatus> TestInterfaceDBusProxy::testVoidDerivedTypeMethodAsync(const DerivedTypeCollection::TestEnumExtended2& testEnumExtended2Value, const DerivedTypeCollection::TestMap& testMapValue, TestVoidDerivedTypeMethodAsyncCallback callback) {
92     return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap>,
93                                      CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync(
94         *this,
95         "testVoidDerivedTypeMethod",
96         "ia{ua(sq)}",
97         testEnumExtended2Value, testMapValue, 
98         std::move(callback));
99 }
100 void TestInterfaceDBusProxy::testDerivedTypeMethod(const DerivedTypeCollection::TestEnumExtended2& testEnumExtended2InValue, const DerivedTypeCollection::TestMap& testMapInValue, CommonAPI::CallStatus& callStatus, DerivedTypeCollection::TestEnumExtended2& testEnumExtended2OutValue, DerivedTypeCollection::TestMap& testMapOutValue) {
101     CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap>,
102                                      CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap> >::callMethodWithReply(
103         *this,
104         "testDerivedTypeMethod",
105         "ia{ua(sq)}",
106         testEnumExtended2InValue, testMapInValue, 
107         callStatus
108         , testEnumExtended2OutValue, testMapOutValue);
109 }
110 std::future<CommonAPI::CallStatus> TestInterfaceDBusProxy::testDerivedTypeMethodAsync(const DerivedTypeCollection::TestEnumExtended2& testEnumExtended2InValue, const DerivedTypeCollection::TestMap& testMapInValue, TestDerivedTypeMethodAsyncCallback callback) {
111     return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap>,
112                                      CommonAPI::DBus::DBusSerializableArguments<DerivedTypeCollection::TestEnumExtended2, DerivedTypeCollection::TestMap> >::callMethodAsync(
113         *this,
114         "testDerivedTypeMethod",
115         "ia{ua(sq)}",
116         testEnumExtended2InValue, testMapInValue, 
117         std::move(callback));
118 }
119
120 void TestInterfaceDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const {
121     ownVersionMajor = 1;
122     ownVersionMinor = 0;
123 }
124
125 } // namespace tests
126 } // namespace commonapi