diff options
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), |