summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorRonghua Wu <ronghuawu@google.com>2015-04-24 21:35:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-24 21:35:38 +0000
commit21db57282da8b3daba1549f3a8e41c4fbaf80059 (patch)
tree2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89 /services
parent7d7ea036436320b03bef826d78c4c035b67edbd0 (diff)
parent8f9dd872366f54b6260506c75c3d0cc3f9f73f81 (diff)
downloadframeworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.zip
frameworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.tar.gz
frameworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.tar.bz2
Merge "mediaresourcemanager: add dumpsys support."
Diffstat (limited to 'services')
-rw-r--r--services/mediaresourcemanager/ResourceManagerService.cpp45
-rw-r--r--services/mediaresourcemanager/ResourceManagerService.h2
-rw-r--r--services/mediaresourcemanager/test/ResourceManagerService_test.cpp4
3 files changed, 51 insertions, 0 deletions
diff --git a/services/mediaresourcemanager/ResourceManagerService.cpp b/services/mediaresourcemanager/ResourceManagerService.cpp
index 75a69ed..17aac4e 100644
--- a/services/mediaresourcemanager/ResourceManagerService.cpp
+++ b/services/mediaresourcemanager/ResourceManagerService.cpp
@@ -88,6 +88,51 @@ static ResourceInfo& getResourceInfoForEdit(
return infos.editItemAt(infos.size() - 1);
}
+status_t ResourceManagerService::dump(int fd, const Vector<String16>& args) {
+ Mutex::Autolock lock(mLock);
+
+ String8 result;
+ const size_t SIZE = 256;
+ char buffer[SIZE];
+
+ snprintf(buffer, SIZE, "ResourceManagerService: %p\n", this);
+ result.append(buffer);
+ result.append(" Policies:\n");
+ snprintf(buffer, SIZE, " SupportsMultipleSecureCodecs: %d\n", mSupportsMultipleSecureCodecs);
+ result.append(buffer);
+ snprintf(buffer, SIZE, " SupportsSecureWithNonSecureCodec: %d\n", mSupportsSecureWithNonSecureCodec);
+ result.append(buffer);
+
+ snprintf(buffer, SIZE, " Processes:\n");
+ result.append(buffer);
+ for (size_t i = 0; i < mMap.size(); ++i) {
+ snprintf(buffer, SIZE, " Pid: %d\n", mMap.keyAt(i));
+ result.append(buffer);
+
+ const ResourceInfos &infos = mMap.valueAt(i);
+ for (size_t j = 0; j < infos.size(); ++j) {
+ snprintf(buffer, SIZE, " Client:\n");
+ result.append(buffer);
+ snprintf(buffer, SIZE, " Id: %lld\n", (long long)infos[j].clientId);
+ result.append(buffer);
+
+ snprintf(buffer, SIZE, " Name: %s\n", infos[j].client->getName().string());
+ result.append(buffer);
+
+ Vector<MediaResource> resources = infos[j].resources;
+ snprintf(buffer, SIZE, " Resources:\n");
+ result.append(buffer);
+ for (size_t k = 0; k < resources.size(); ++k) {
+ snprintf(buffer, SIZE, " %s\n", resources[k].toString().string());
+ result.append(buffer);
+ }
+ }
+ }
+
+ write(fd, result.string(), result.size());
+ return OK;
+}
+
ResourceManagerService::ResourceManagerService()
: mProcessInfo(new ProcessInfo()),
mSupportsMultipleSecureCodecs(true),
diff --git a/services/mediaresourcemanager/ResourceManagerService.h b/services/mediaresourcemanager/ResourceManagerService.h
index 2ed9bf8..0c3d694 100644
--- a/services/mediaresourcemanager/ResourceManagerService.h
+++ b/services/mediaresourcemanager/ResourceManagerService.h
@@ -48,6 +48,8 @@ class ResourceManagerService
public:
static char const *getServiceName() { return "media.resource_manager"; }
+ virtual status_t dump(int fd, const Vector<String16>& args);
+
ResourceManagerService();
ResourceManagerService(sp<ProcessInfoInterface> processInfo);
diff --git a/services/mediaresourcemanager/test/ResourceManagerService_test.cpp b/services/mediaresourcemanager/test/ResourceManagerService_test.cpp
index 48d1395..bccc7fa 100644
--- a/services/mediaresourcemanager/test/ResourceManagerService_test.cpp
+++ b/services/mediaresourcemanager/test/ResourceManagerService_test.cpp
@@ -55,6 +55,10 @@ struct TestClient : public BnResourceManagerClient {
return true;
}
+ virtual String8 getName() {
+ return String8("test_client");
+ }
+
bool reclaimed() const {
return mReclaimed;
}