| /* |
| * Copyright (C) 2007 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 _ROMANAGER_H |
| #define _ROMANAGER_H |
| |
| #include <Drm2CommonTypes.h> |
| #include <ustring.h> |
| #include <rights/Ro.h> |
| |
| using namespace ustl; |
| |
| class RoManager { |
| |
| public: |
| /** |
| * Singleton instance function. |
| * @return the singleton pointer. |
| */ |
| static RoManager* Instance(); |
| |
| /** |
| * Destructor for ExpatWrapper. |
| */ |
| ~RoManager(); |
| |
| /** |
| * Install Ro from stream. |
| * @param roStream the input ro stream. |
| * @return the status of installaltion. |
| */ |
| Ro::ERRCODE installRo(istringstream *roStream); |
| |
| /** |
| * Check whether Ro in cache or not. |
| * @param roID the specific roID. |
| * @return true/false to indicate result. |
| */ |
| bool checkRoInCache(const string& roID); |
| |
| /** |
| * Get the ro. |
| * @param roID the specific id of ro. |
| * @return NULL if not found otherwise return ro. |
| */ |
| Ro* getRo(const string& roID); |
| |
| /** |
| * Get all the Ro. |
| * @return ro list. |
| */ |
| vector<Ro*> getAllRo(); |
| |
| /** |
| * Get ro which contained rights of specific content. |
| * @param contentID the specific id of content. |
| * @return NULL if not fount otherwise the related ro. |
| */ |
| Ro* getRoByContentID(const string& contentID); |
| |
| /** |
| * Delete Ro by its id. |
| * @param roID the specific roID. |
| * @return true/false to indicate the result. |
| */ |
| bool deleteRo(const string& roID); |
| |
| |
| PRIVATE: |
| /** |
| * Constructor for RoManager. |
| */ |
| RoManager(); |
| |
| PRIVATE: |
| static RoManager* msInstance; /**< singleton instance pointer. */ |
| vector<Ro*> mRoList; /**< the ro list. */ |
| }; |
| |
| #endif |