#include <OMKAccessRule.h>
Inheritance diagram for OMK::Iii::AccessRule:
Public Member Functions | |
virtual void | setCurrentLevel (const Type::AccessGroupLevel &level, Type::AccessLevel toolLevel) |
Private Member Functions | |
DECLARE_ACCESS_RULE_FACTORY (AccessRule) |
Definition at line 35 of file OMKAccessRule.h.
OMK::Iii::AccessRule::DECLARE_ACCESS_RULE_FACTORY | ( | AccessRule | ) | [private] |
void AccessRule::setCurrentLevel | ( | const Type::AccessGroupLevel & | level, | |
Type::AccessLevel | toolLevel | |||
) | [virtual] |
Implements OMK::Iii::IAccessRule.
Definition at line 44 of file OMKAccessRule.cpp.
References OMK::Iii::IAccessRule::_currentLevel, OMK::Iii::IAccessRule::_freezableType, OMK::Iii::IAccessRule::FREEZABLE_AT_ANY_LEVEL, OMK::Iii::IAccessRule::FREEZABLE_AT_TOOL_LEVEL, OMASSERTM, and OMK::Iii::IAccessRule::UNFREEZABLE.
00045 { 00046 AccessLevel maxLevel = 2147483647 ; 00047 switch( _freezableType ) 00048 { 00049 case UNFREEZABLE: 00050 // Nothing to do 00051 break ; 00052 case FREEZABLE_AT_TOOL_LEVEL: 00053 maxLevel = toolLevel + 1 ; 00054 // no break 00055 case FREEZABLE_AT_ANY_LEVEL: 00056 if( level.empty() ) 00057 { 00058 _currentLevel.clear() ; 00059 _currentLevel[ "*" ] = -1 ; 00060 } 00061 else 00062 { 00063 _currentLevel = level ; 00064 for( AccessGroupLevel::iterator entry = _currentLevel.begin() ; 00065 entry != _currentLevel.end() ; 00066 entry++ ) 00067 { 00068 entry->second = entry->second <= maxLevel ? entry->second : maxLevel ; 00069 } 00070 } 00071 break ; 00072 default: 00073 OMASSERTM( false, "Not a valid state !" ) ; 00074 } 00075 }
Documentation generated on Mon Jun 9 11:46:04 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |