1231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu/* 2231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Copyright 2015 The Android Open Source Project 3231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 4231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Licensed under the Apache License, Version 2.0 (the "License"); 5231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * you may not use this file except in compliance with the License. 6231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * You may obtain a copy of the License at 7231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 8231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * http://www.apache.org/licenses/LICENSE-2.0 9231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 10231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Unless required by applicable law or agreed to in writing, software 11231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * distributed under the License is distributed on an "AS IS" BASIS, 12231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * See the License for the specific language governing permissions and 14231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * limitations under the License. 15231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu */ 16231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 17231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#ifndef ANDROID_IRESOURCEMANAGERSERVICE_H 18231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#define ANDROID_IRESOURCEMANAGERSERVICE_H 19231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 20231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <utils/Errors.h> // for status_t 21231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <utils/KeyedVector.h> 22231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <utils/RefBase.h> 23231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <utils/String8.h> 24231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <binder/IInterface.h> 25231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <binder/Parcel.h> 26231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 27231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <media/IResourceManagerClient.h> 28231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <media/MediaResource.h> 29231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <media/MediaResourcePolicy.h> 30231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 31231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wunamespace android { 32231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 33231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wuclass IResourceManagerService: public IInterface 34231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu{ 35231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wupublic: 36231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu DECLARE_META_INTERFACE(ResourceManagerService); 37231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 38231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu virtual void config(const Vector<MediaResourcePolicy> &policies) = 0; 39231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 40231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu virtual void addResource( 41231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu int pid, 42231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu int64_t clientId, 43231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu const sp<IResourceManagerClient> client, 44231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu const Vector<MediaResource> &resources) = 0; 45231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 4637c8924c508a7c9b8bd3c8ce80fc005070531902Ronghua Wu virtual void removeResource(int pid, int64_t clientId) = 0; 47231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 48231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu virtual bool reclaimResource( 49231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu int callingPid, 50231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu const Vector<MediaResource> &resources) = 0; 51231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu}; 52231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 53231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu// ---------------------------------------------------------------------------- 54231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 55231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wuclass BnResourceManagerService: public BnInterface<IResourceManagerService> 56231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu{ 57231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wupublic: 58231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu virtual status_t onTransact(uint32_t code, 59231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu const Parcel &data, 60231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu Parcel *reply, 61231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu uint32_t flags = 0); 62231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu}; 63231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 64231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu}; // namespace android 65231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 66231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#endif // ANDROID_IRESOURCEMANAGERSERVICE_H 67