/* * 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 _OPERATIONPERMISSION_H #define _OPERATIONPERMISSION_H #include <Drm2CommonTypes.h> #include <rights/Constraint.h> class OperationPermission { public: enum OPERATION {NONE, PLAY, DISPLAY, EXECUTE, PRINT, EXPORT, COMMON}; /** * Construtor of OperationPermission. */ OperationPermission(); /** * Construtor of OperationPermission. * @param type the specific operation type. * @param cst the constraint related with operation permission. */ OperationPermission(OPERATION type, Constraint* cst=NULL); /** * Destrutor of OperationPermission. */ ~OperationPermission(); /** * Set the type for operation permission. * @param type the specific type. */ void setType(OPERATION type); /** * Get the type of operation permission. * @return operation type. */ OPERATION getType() const; /** * Add constraint for operation permission. * @param constraint the constraint related with operation permission. */ void addConstraint(Constraint* constraint); /** * Add constraint for operation permission. * @return constraint related with operation permission. */ Constraint* getConstraint() const; PRIVATE: OPERATION mType; Constraint* mConstraint; PRIVATE: /** * Disable the assignment between OperationPermissions. */ OperationPermission& operator=(const OperationPermission &op); /** * Disable copy construtor. */ OperationPermission(const OperationPermission &op); }; #endif