Skip to content

Commit 7b1f588

Browse files
authored
Merge branch 'master' into enable_multitouch
2 parents 64af9c1 + 10afc4d commit 7b1f588

File tree

5 files changed

+151
-71
lines changed

5 files changed

+151
-71
lines changed

src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,9 @@ set(SOURCES
142142
anbox/dbus/bus.h
143143
anbox/dbus/codecs.h
144144
anbox/dbus/interface.h
145+
anbox/dbus/sd_bus_helpers.c
145146
anbox/dbus/sd_bus_helpers.h
147+
anbox/dbus/sd_bus_helpers.hpp
146148
anbox/dbus/skeleton/application_manager.cpp
147149
anbox/dbus/skeleton/application_manager.h
148150
anbox/dbus/skeleton/service.cpp

src/anbox/dbus/sd_bus_helpers.c

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Copyright (C) 2019 Martin Unzner <[email protected]>
3+
*
4+
* This program is free software: you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License version 3, as published
6+
* by the Free Software Foundation.
7+
*
8+
* This program is distributed in the hope that it will be useful, but
9+
* WITHOUT ANY WARRANTY; without even the implied warranties of
10+
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+
* PURPOSE. See the GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License along
14+
* with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*
16+
*/
17+
18+
#include "sd_bus_helpers.h"
19+
20+
sd_bus_vtable sdbus_vtable_create_start(uint64_t flags) {
21+
const sd_bus_vtable start = SD_BUS_VTABLE_START(flags);
22+
return start;
23+
}
24+
25+
sd_bus_vtable sdbus_vtable_create_end() {
26+
const sd_bus_vtable end = SD_BUS_VTABLE_END;
27+
return end;
28+
}
29+
30+
sd_bus_vtable sdbus_vtable_create_method_o(const char* member, const char* signature,
31+
const char* result,
32+
sd_bus_message_handler_t handler, size_t offset,
33+
uint64_t flags) {
34+
const sd_bus_vtable method_o = SD_BUS_METHOD_WITH_OFFSET(
35+
member, signature, result, handler, offset, flags);
36+
return method_o;
37+
}
38+
39+
sd_bus_vtable sdbus_vtable_create_method(const char* member, const char* signature,
40+
const char* result, sd_bus_message_handler_t handler,
41+
uint64_t flags) {
42+
return sdbus_vtable_create_method_o(member, signature, result, handler, 0, flags);
43+
}
44+
45+
sd_bus_vtable sdbus_vtable_create_signal(const char* member, const char* signature, uint64_t flags) {
46+
const sd_bus_vtable signal = SD_BUS_SIGNAL(member, signature, flags);
47+
return signal;
48+
}
49+
50+
sd_bus_vtable sdbus_vtable_create_property(const char* member, const char* signature,
51+
sd_bus_property_get_t get,
52+
uint64_t flags) {
53+
const sd_bus_vtable property = SD_BUS_PROPERTY(member, signature, get, 0, flags);
54+
return property;
55+
}
56+
57+
sd_bus_vtable sdbus_vtable_create_property_set(const char* member, const char* signature,
58+
sd_bus_property_get_t get,
59+
sd_bus_property_set_t set,
60+
uint64_t flags) {
61+
const sd_bus_vtable property = SD_BUS_WRITABLE_PROPERTY(member, signature, get, set, 0, flags);
62+
return property;
63+
}
64+
65+
sd_bus_vtable sdbus_vtable_create_property_o(const char* member, const char* signature,
66+
size_t offset, uint64_t flags) {
67+
const sd_bus_vtable property_o = SD_BUS_PROPERTY(member, signature, NULL, offset, flags);
68+
return property_o;
69+
}
70+
71+
sd_bus_vtable sdbus_vtable_create_property_o_set(const char* member, const char* signature,
72+
sd_bus_property_set_t set, size_t offset,
73+
uint64_t flags) {
74+
const sd_bus_vtable property_o = SD_BUS_WRITABLE_PROPERTY(
75+
member, signature, NULL, set, offset, flags);
76+
return property_o;
77+
}

src/anbox/dbus/sd_bus_helpers.h

Lines changed: 37 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,54 @@
11
/*
2-
* Copyright (C) 2018 OpenBMC
3-
*
4-
* Taken from https://github.com/openbmc/sdbusplus/blob/master/sdbusplus/vtable.hpp
5-
*
6-
* Licensed under the Apache License, Version 2.0 (the "License");
7-
* you may not use this file except in compliance with the License.
8-
* You may obtain a copy of the License at
9-
*
10-
* http://www.apache.org/licenses/LICENSE-2.0
11-
*
12-
* Unless required by applicable law or agreed to in writing, software
13-
* distributed under the License is distributed on an "AS IS" BASIS,
14-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15-
* See the License for the specific language governing permissions and
16-
* limitations under the License.
17-
*/
2+
* Copyright (C) 2019 Martin Unzner <[email protected]>
3+
*
4+
* This program is free software: you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License version 3, as published
6+
* by the Free Software Foundation.
7+
*
8+
* This program is distributed in the hope that it will be useful, but
9+
* WITHOUT ANY WARRANTY; without even the implied warranties of
10+
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+
* PURPOSE. See the GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License along
14+
* with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*
16+
*/
1817

1918
#ifndef ANBOX_DBUS_SD_BUS_HELPERS_H_
2019
#define ANBOX_DBUS_SD_BUS_HELPERS_H_
2120

2221
#include <systemd/sd-bus-vtable.h>
2322

24-
namespace anbox {
25-
namespace dbus {
26-
namespace sdbus {
27-
namespace vtable {
28-
constexpr sd_bus_vtable start(uint64_t flags)
29-
{
30-
return SD_BUS_VTABLE_START(flags);
31-
}
23+
sd_bus_vtable sdbus_vtable_create_start(uint64_t flags);
3224

33-
constexpr sd_bus_vtable end() {
34-
return SD_BUS_VTABLE_END;
35-
}
25+
sd_bus_vtable sdbus_vtable_create_end();
3626

37-
constexpr sd_bus_vtable method_o(const char* member, const char* signature,
38-
const char* result,
39-
sd_bus_message_handler_t handler, size_t offset,
40-
uint64_t flags) {
41-
return sd_bus_vtable SD_BUS_METHOD_WITH_OFFSET(member, signature, result, handler, offset, flags);
42-
}
27+
sd_bus_vtable sdbus_vtable_create_method_o(const char* member, const char* signature,
28+
const char* result,
29+
sd_bus_message_handler_t handler, size_t offset,
30+
uint64_t flags);
4331

44-
constexpr sd_bus_vtable method(const char* member, const char* signature,
45-
const char* result, sd_bus_message_handler_t handler,
46-
uint64_t flags) {
47-
return method_o(member, signature, result, handler, 0, flags);
48-
}
32+
sd_bus_vtable sdbus_vtable_create_method(const char* member, const char* signature,
33+
const char* result, sd_bus_message_handler_t handler,
34+
uint64_t flags);
4935

50-
constexpr sd_bus_vtable signal(const char* member, const char* signature, uint64_t flags) {
51-
return sd_bus_vtable SD_BUS_SIGNAL(member, signature, flags);
52-
}
36+
sd_bus_vtable sdbus_vtable_create_signal(const char* member, const char* signature, uint64_t flags);
5337

54-
constexpr sd_bus_vtable property(const char* member, const char* signature,
55-
sd_bus_property_get_t get,
56-
uint64_t flags) {
57-
return sd_bus_vtable SD_BUS_PROPERTY(member, signature, get, 0, flags);
58-
}
38+
sd_bus_vtable sdbus_vtable_create_property(const char* member, const char* signature,
39+
sd_bus_property_get_t get,
40+
uint64_t flags);
5941

60-
constexpr sd_bus_vtable property(const char* member, const char* signature,
61-
sd_bus_property_get_t get,
62-
sd_bus_property_set_t set,
63-
uint64_t flags) {
64-
return sd_bus_vtable SD_BUS_WRITABLE_PROPERTY(member, signature, get, set, 0, flags);
65-
}
42+
sd_bus_vtable sdbus_vtable_create_property_set(const char* member, const char* signature,
43+
sd_bus_property_get_t get,
44+
sd_bus_property_set_t set,
45+
uint64_t flags);
6646

67-
constexpr sd_bus_vtable property_o(const char* member, const char* signature,
68-
size_t offset, uint64_t flags) {
69-
return sd_bus_vtable SD_BUS_PROPERTY(member, signature, nullptr, offset, flags);
70-
}
47+
sd_bus_vtable sdbus_vtable_create_property_o(const char* member, const char* signature,
48+
size_t offset, uint64_t flags);
7149

72-
constexpr sd_bus_vtable property_o(const char* member, const char* signature,
73-
sd_bus_property_set_t set, size_t offset,
74-
uint64_t flags)
75-
{
76-
return sd_bus_vtable SD_BUS_WRITABLE_PROPERTY(member, signature, nullptr, set, offset, flags);
77-
}
78-
} // namespace vtable
79-
} // namespace sd_bus
80-
} // namespace dbus
81-
} // namespace anbox
50+
sd_bus_vtable sdbus_vtable_create_property_o_set(const char* member, const char* signature,
51+
sd_bus_property_set_t set, size_t offset,
52+
uint64_t flags);
8253

8354
#endif

src/anbox/dbus/sd_bus_helpers.hpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) 2019 Martin Unzner <[email protected]>
3+
*
4+
* This program is free software: you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License version 3, as published
6+
* by the Free Software Foundation.
7+
*
8+
* This program is distributed in the hope that it will be useful, but
9+
* WITHOUT ANY WARRANTY; without even the implied warranties of
10+
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+
* PURPOSE. See the GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License along
14+
* with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*
16+
*/
17+
18+
#ifndef ANBOX_DBUS_SD_BUS_HELPERS_HPP_
19+
#define ANBOX_DBUS_SD_BUS_HELPERS_HPP_
20+
21+
namespace anbox {
22+
namespace dbus {
23+
24+
extern "C" {
25+
#include "sd_bus_helpers.h"
26+
}
27+
} // namespace dbus
28+
} // namespace anbox
29+
30+
#endif

src/anbox/dbus/skeleton/application_manager.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#include "anbox/dbus/skeleton/application_manager.h"
1919
#include "anbox/dbus/interface.h"
20-
#include "anbox/dbus/sd_bus_helpers.h"
20+
#include "anbox/dbus/sd_bus_helpers.hpp"
2121
#include "anbox/android/intent.h"
2222
#include "anbox/logger.h"
2323

@@ -51,10 +51,10 @@ namespace anbox {
5151
namespace dbus {
5252
namespace skeleton {
5353
const sd_bus_vtable ApplicationManager::vtable[] = {
54-
sdbus::vtable::start(0),
55-
sdbus::vtable::method("Launch", "a{sv}s", "", ApplicationManager::method_launch, SD_BUS_VTABLE_UNPRIVILEGED),
56-
sdbus::vtable::property("Ready", "b", ApplicationManager::property_ready_get, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
57-
sdbus::vtable::end()
54+
sdbus_vtable_create_start(0),
55+
sdbus_vtable_create_method("Launch", "a{sv}s", "", ApplicationManager::method_launch, SD_BUS_VTABLE_UNPRIVILEGED),
56+
sdbus_vtable_create_property("Ready", "b", ApplicationManager::property_ready_get, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
57+
sdbus_vtable_create_end()
5858
};
5959

6060
int ApplicationManager::method_launch(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {

0 commit comments

Comments
 (0)