typename list< pair<K, V> >::iterator insert ( const K& key, const V &value ) { RWLock::Instance inst = m_lock.GetWriteLock(); if ( !m_value_list.size() ) { return m_value_list.push_back ( make_pair(key, value) ); } else { typename list< pair<K, V> >::iterator iter = m_value_list.begin(); for ( ; iter != m_value_list.end(); iter++ ) { if ( iter->first == key ) { return iter; } } return m_value_list.push_back ( make_pair(key, value) ); } }
bool erase ( const K& key ) { RWLock::Instance inst = m_lock.GetWriteLock(); if ( !m_value_list.size() ) { return false; } else { typename list< pair<K, V> >::iterator iter = m_value_list.begin(); for ( ; iter != m_value_list.end(); iter++ ) { if ( iter->first == key ) { m_value_list.remove(iter); return true; } } return false; } }
RWLock::Instance get_write_lock() { return m_lock.GetWriteLock(); }
bool erase ( const K& key ) { RWLock::Instance inst = m_lock.GetWriteLock(); return erase_unlock(key); }
typename list< pair<K, V> >::iterator insert ( const K& key, const V &value ) { RWLock::Instance inst = m_lock.GetWriteLock(); return insert_unlock(key, value); }