summaryrefslogtreecommitdiffstats
path: root/include/binder/PermissionCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/binder/PermissionCache.h')
-rw-r--r--include/binder/PermissionCache.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/include/binder/PermissionCache.h b/include/binder/PermissionCache.h
deleted file mode 100644
index 1171d48..0000000
--- a/include/binder/PermissionCache.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef BINDER_PERMISSION_H
-#define BINDER_PERMISSION_H
-
-#include <stdint.h>
-#include <unistd.h>
-
-#include <utils/String16.h>
-#include <utils/Singleton.h>
-
-namespace android {
-// ---------------------------------------------------------------------------
-
-/*
- * PermissionCache caches permission checks for a given uid.
- *
- * Currently the cache is not updated when there is a permission change,
- * for instance when an application is uninstalled.
- *
- * IMPORTANT: for the reason stated above, only system permissions are safe
- * to cache. This restriction may be lifted at a later time.
- *
- */
-
-class PermissionCache : Singleton<PermissionCache> {
- struct Entry {
- String16 name;
- uid_t uid;
- bool granted;
- inline bool operator < (const Entry& e) const {
- return (uid == e.uid) ? (name < e.name) : (uid < e.uid);
- }
- };
- mutable Mutex mLock;
- // we pool all the permission names we see, as many permissions checks
- // will have identical names
- SortedVector< String16 > mPermissionNamesPool;
- // this is our cache per say. it stores pooled names.
- SortedVector< Entry > mCache;
-
- // free the whole cache, but keep the permission name pool
- void purge();
-
- status_t check(bool* granted,
- const String16& permission, uid_t uid) const;
-
- void cache(const String16& permission, uid_t uid, bool granted);
-
-public:
- PermissionCache();
-
- static bool checkCallingPermission(const String16& permission);
-
- static bool checkCallingPermission(const String16& permission,
- int32_t* outPid, int32_t* outUid);
-
- static bool checkPermission(const String16& permission,
- pid_t pid, uid_t uid);
-};
-
-// ---------------------------------------------------------------------------
-}; // namespace android
-
-#endif /* BINDER_PERMISSION_H */