| 1631 | } |
| 1632 | |
| 1633 | void |
| 1634 | AccessControlBuiltInImpl::RevokePermissions::erase(::DDS::Security::PermissionsHandle pm_handle) |
| 1635 | { |
| 1636 | ACE_GUARD(ACE_Thread_Mutex, guard, lock_); |
| 1637 | |
| 1638 | HandleToExpiration::iterator iter = handle_to_expiration_.find(pm_handle); |
| 1639 | if (iter == handle_to_expiration_.end()) { |
| 1640 | return; |
| 1641 | } |
| 1642 | |
| 1643 | const time_t expiration = iter->second; |
| 1644 | |
| 1645 | std::pair<ExpirationToHandle::iterator, ExpirationToHandle::iterator> er = |
| 1646 | expiration_to_handle_.equal_range(expiration); |
| 1647 | while (er.first != er.second) { |
| 1648 | if (er.first->second == pm_handle) { |
| 1649 | expiration_to_handle_.erase(er.first++); |
| 1650 | if (DCPS::security_debug.bookkeeping) { |
| 1651 | ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) {bookkeeping} ") |
| 1652 | ACE_TEXT("AccessControlBuiltInImpl::RevokePermissions::erase expiration_to_handle_ (total %B)\n"), |
| 1653 | expiration_to_handle_.size())); |
| 1654 | } |
| 1655 | } else { |
| 1656 | ++er.first; |
| 1657 | } |
| 1658 | } |
| 1659 | |
| 1660 | handle_to_expiration_.erase(pm_handle); |
| 1661 | if (DCPS::security_debug.bookkeeping) { |
| 1662 | ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) {bookkeeping} ") |
| 1663 | ACE_TEXT("AccessControlBuiltInImpl::RevokePermissions::process handle_to_expiration_ (total %B)\n"), |
| 1664 | handle_to_expiration_.size())); |
| 1665 | } |
| 1666 | } |
| 1667 | |
| 1668 | void |
| 1669 | AccessControlBuiltInImpl::RevokePermissions::process() |
no test coverage detected