#include <OMKIAccessRule.h>
Inheritance diagram for OMK::Iii::IAccessRule:
Public Types | |
enum | FreezableType { UNFREEZABLE, FREEZABLE_AT_TOOL_LEVEL, FREEZABLE_AT_ANY_LEVEL } |
Public Member Functions | |
virtual | ~IAccessRule () |
virtual Type::AccessLevel | getAccessLevel (const Name &groupName) const |
virtual const Type::AccessGroupLevel & | getCurrentAccessLevel () const |
virtual const Type::AccessGroupLevel & | getDefaultAccessLevel () const |
virtual void | setCurrentLevel (const Type::AccessGroupLevel &level, Type::AccessLevel toolLevel)=0 |
virtual void | resetCurrentLevel () |
virtual bool | isAccessGranted (Type::AccessLevel level, const Name &group) const |
Protected Member Functions | |
IAccessRule (const ConfigurationParameterDescriptor *node) | |
Protected Attributes | |
Type::AccessGroupLevel | _defaultLevel |
Type::AccessGroupLevel | _currentLevel |
Type::AccessLevel | _freezableLevel |
FreezableType | _freezableType |
The access rules objects are used to define if a tool can access to the attribute of an interactive object. The behavior is defined in various implementations of the interface (see for example AccessRule). The user can choose the implementation by configuration.
Definition at line 67 of file OMKIAccessRule.h.
Definition at line 70 of file OMKIAccessRule.h.
00070 : 00071 enum FreezableType 00072 { 00073 UNFREEZABLE, 00074 FREEZABLE_AT_TOOL_LEVEL, 00075 FREEZABLE_AT_ANY_LEVEL } ;
IAccessRule::IAccessRule | ( | const ConfigurationParameterDescriptor * | node | ) | [protected] |
Definition at line 30 of file OMKIAccessRule.cpp.
References _currentLevel, _defaultLevel, _freezableLevel, _freezableType, FREEZABLE_AT_ANY_LEVEL, FREEZABLE_AT_TOOL_LEVEL, OMK::ParametersAccessor::get(), and UNFREEZABLE.
00031 : _defaultLevel(), 00032 _currentLevel(), 00033 _freezableLevel( -1 ), 00034 _freezableType( UNFREEZABLE ) 00035 { 00036 // read the acces type 00037 std::map< std::string, FreezableType > mapping ; 00038 mapping[ "unfreezable" ] = UNFREEZABLE ; 00039 mapping[ "freezable at tool level" ] = FREEZABLE_AT_TOOL_LEVEL ; 00040 mapping[ "freezable at any level" ] = FREEZABLE_AT_ANY_LEVEL ; 00041 ParametersAccessor::get( node, "FreezableType", _freezableType, mapping ) ; 00042 00043 // if necessary read the max level 00044 if( FREEZABLE_AT_ANY_LEVEL == _freezableType ) 00045 ParametersAccessor::get( node, "FreezableLevel", _freezableLevel ) ; 00046 00047 // acces level for default group 00048 _defaultLevel[ "*" ] = -1 ; 00049 // try to find one in the parameters 00050 ParametersAccessor::get( node, "AccessLevels", _defaultLevel ) ; 00051 // copy the default in the current to start 00052 _currentLevel = _defaultLevel ; 00053 }
IAccessRule::~IAccessRule | ( | ) | [virtual] |
AccessLevel IAccessRule::getAccessLevel | ( | const Name & | groupName | ) | const [virtual] |
Definition at line 61 of file OMKIAccessRule.cpp.
References _currentLevel.
Referenced by isAccessGranted().
00062 { 00063 AccessGroupLevel::const_iterator item = _currentLevel.find( name ) ; 00064 if( item == _currentLevel.end() ) 00065 { 00066 item = _currentLevel.find( "*" ) ; 00067 } 00068 return ( item != _currentLevel.end() ) ? item->second : -1 ; 00069 }
virtual const Type::AccessGroupLevel& OMK::Iii::IAccessRule::getCurrentAccessLevel | ( | ) | const [inline, virtual] |
Definition at line 81 of file OMKIAccessRule.h.
virtual const Type::AccessGroupLevel& OMK::Iii::IAccessRule::getDefaultAccessLevel | ( | ) | const [inline, virtual] |
Definition at line 82 of file OMKIAccessRule.h.
References _currentLevel.
00082 { return _currentLevel ; }
virtual void OMK::Iii::IAccessRule::setCurrentLevel | ( | const Type::AccessGroupLevel & | level, | |
Type::AccessLevel | toolLevel | |||
) | [pure virtual] |
Implemented in OMK::Iii::AccessRule.
void IAccessRule::resetCurrentLevel | ( | ) | [virtual] |
Definition at line 78 of file OMKIAccessRule.cpp.
References _currentLevel, and _defaultLevel.
Referenced by OMK::Iii::SharedConnectorT< Type >::disconnect(), and OMK::Iii::SimpleConnectorT< Type >::disconnect().
00079 { 00080 _currentLevel = _defaultLevel ; 00081 }
bool IAccessRule::isAccessGranted | ( | Type::AccessLevel | level, | |
const Name & | group | |||
) | const [virtual] |
Definition at line 72 of file OMKIAccessRule.cpp.
References getAccessLevel().
00073 { 00074 return getAccessLevel( group ) <= level ; 00075 }
Definition at line 87 of file OMKIAccessRule.h.
Referenced by IAccessRule(), and resetCurrentLevel().
Definition at line 88 of file OMKIAccessRule.h.
Referenced by getAccessLevel(), getDefaultAccessLevel(), IAccessRule(), resetCurrentLevel(), and OMK::Iii::AccessRule::setCurrentLevel().
FreezableType OMK::Iii::IAccessRule::_freezableType [protected] |
Definition at line 90 of file OMKIAccessRule.h.
Referenced by IAccessRule(), and OMK::Iii::AccessRule::setCurrentLevel().
Documentation generated on Mon Jun 9 11:46:04 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |