Beispiel #1
0
			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) );
				}
			}
Beispiel #2
0
			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;
				}
			}
Beispiel #3
0
			RWLock::Instance get_write_lock() {
				return m_lock.GetWriteLock();
			}
Beispiel #4
0
			bool erase ( const K& key ) {
                RWLock::Instance inst = m_lock.GetWriteLock();
				return erase_unlock(key);
			}
Beispiel #5
0
			typename list< pair<K, V> >::iterator insert ( const K& key, const V &value ) {
				RWLock::Instance inst = m_lock.GetWriteLock();
				return insert_unlock(key, value);
			}