summaryrefslogtreecommitdiff
path: root/libs/binder/IServiceManager.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-09-25 19:19:47 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-09-25 19:19:47 +0000
commit37fbf2de102d888d65c63c4643756b963ae2bc77 (patch)
tree2214ec40f40c1bb839bc1b1974eda551f1568415 /libs/binder/IServiceManager.cpp
parent3b2f56cfc1a6d4c2d8001b1dd3b322e6788c3d60 (diff)
parentb23efff6bfd0cc1d9a864ee8100a648f2f5ed6bc (diff)
Merge "servicemanager: vintf declared API" am: 8fd083ca55 am: a57fdf911b am: 212edd6901 am: b23efff6bf
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1435031 Change-Id: I4a9c3ac5aab3d67b34beea0126d283499d028ff9
Diffstat (limited to 'libs/binder/IServiceManager.cpp')
-rw-r--r--libs/binder/IServiceManager.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp
index 9aa82d908c..6d728dc6b1 100644
--- a/libs/binder/IServiceManager.cpp
+++ b/libs/binder/IServiceManager.cpp
@@ -74,6 +74,7 @@ public:
Vector<String16> listServices(int dumpsysPriority) override;
sp<IBinder> waitForService(const String16& name16) override;
bool isDeclared(const String16& name) override;
+ Vector<String16> getDeclaredInstances(const String16& interface) override;
// for legacy ABI
const String16& getInterfaceDescriptor() const override {
@@ -373,4 +374,18 @@ bool ServiceManagerShim::isDeclared(const String16& name) {
return declared;
}
+Vector<String16> ServiceManagerShim::getDeclaredInstances(const String16& interface) {
+ std::vector<std::string> out;
+ if (!mTheRealServiceManager->getDeclaredInstances(String8(interface).c_str(), &out).isOk()) {
+ return {};
+ }
+
+ Vector<String16> res;
+ res.setCapacity(out.size());
+ for (const std::string& instance : out) {
+ res.push(String16(instance.c_str()));
+ }
+ return res;
+}
+
} // namespace android