diff options
author | Ronghua Wu <ronghuawu@google.com> | 2015-04-24 21:35:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-24 21:35:38 +0000 |
commit | 21db57282da8b3daba1549f3a8e41c4fbaf80059 (patch) | |
tree | 2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89 /services/mediaresourcemanager/ResourceManagerService.cpp | |
parent | 7d7ea036436320b03bef826d78c4c035b67edbd0 (diff) | |
parent | 8f9dd872366f54b6260506c75c3d0cc3f9f73f81 (diff) | |
download | frameworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.zip frameworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.tar.gz frameworks_av-21db57282da8b3daba1549f3a8e41c4fbaf80059.tar.bz2 |
Merge "mediaresourcemanager: add dumpsys support."
Diffstat (limited to 'services/mediaresourcemanager/ResourceManagerService.cpp')
-rw-r--r-- | services/mediaresourcemanager/ResourceManagerService.cpp | 45 |
1 files changed, 45 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), |