Boolean InstanceIndexFile::lookupEntry( const String& path, const CIMObjectPath& instanceName, Uint32& indexOut, Uint32& sizeOut) { PEG_METHOD_ENTER(TRC_REPOSITORY, "InstanceIndexFile::lookupEntry()"); fstream fs; if (!_openFile(path, fs)) { PEG_METHOD_EXIT(); return false; } Uint32 entryOffset = 0; Boolean result = _lookupEntry( fs, instanceName, indexOut, sizeOut, entryOffset); fs.close(); PEG_METHOD_EXIT(); return result; }
bool PrivilegeSet::hasPrivilege(const Privilege& desiredPrivilege) { if (desiredPrivilege.getActions().empty()) return true; StringData resourceSearchList[2]; resourceSearchList[0] = WILDCARD_RESOURCE; resourceSearchList[1] = desiredPrivilege.getResource(); ActionSet unmetRequirements = desiredPrivilege.getActions(); for (int i = 0; i < boost::size(resourceSearchList); ++i) { ResourcePrivilegeCacheEntry* entry = _lookupEntry(resourceSearchList[i]); if (NULL == entry) continue; if (entry->dirty) _rebuildEntry(resourceSearchList[i], entry); unmetRequirements.removeAllActionsFromSet(entry->actions); if (unmetRequirements.empty()) return true; } return false; }