OMK::Iii::AccessRule Class Reference

#include <OMKAccessRule.h>

Inheritance diagram for OMK::Iii::AccessRule:

Inheritance graph
[legend]
Collaboration diagram for OMK::Iii::AccessRule:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void setCurrentLevel (const Type::AccessGroupLevel &level, Type::AccessLevel toolLevel)

Private Member Functions

 DECLARE_ACCESS_RULE_FACTORY (AccessRule)

Detailed Description

Definition at line 35 of file OMKAccessRule.h.


Member Function Documentation

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 }


logo OpenMask

Documentation generated on Mon Jun 9 11:46:04 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007