org.infinispan.atomic
Class AtomicHashMapProxy<K,V>

java.lang.Object
  extended by org.infinispan.batch.AutoBatchSupport
      extended by org.infinispan.atomic.AtomicHashMapProxy<K,V>
Type Parameters:
K - the type of keys maintained by this map
V - the type of mapped values
All Implemented Interfaces:
Map<K,V>, AtomicMap<K,V>

public class AtomicHashMapProxy<K,V>
extends AutoBatchSupport
implements AtomicMap<K,V>

A layer of indirection around an AtomicHashMap to provide consistency and isolation for concurrent readers while writes may also be going on. The techniques used in this implementation are very similar to the lock-free reader MVCC model used in the MVCCEntry implementations for the core data container, which closely follow software transactional memory approaches to dealing with concurrency.

Implementations of this class are rarely created on their own; AtomicHashMap.getProxy(org.infinispan.Cache, Object, org.infinispan.batch.BatchContainer, org.infinispan.context.InvocationContextContainer) should be used to retrieve an instance of this proxy.

Typically proxies are only created by the AtomicMapLookup helper, and would not be created by end-user code directly.

Since:
4.0
Author:
Manik Surtani
See Also:
AtomicHashMap

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
 
Fields inherited from class org.infinispan.batch.AutoBatchSupport
batchContainer
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 Set<Map.Entry<K,V>> entrySet()
           
 V get(Object key)
           
 boolean isEmpty()
           
 Set<K> keySet()
           
 V put(K key, V value)
           
 void putAll(Map<? extends K,? extends V> m)
           
 V remove(Object key)
           
 int size()
           
 String toString()
           
 Collection<V> values()
           
 
Methods inherited from class org.infinispan.batch.AutoBatchSupport
assertBatchingSupported, endAtomic, startAtomic
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Method Detail

keySet

public Set<K> keySet()
Specified by:
keySet in interface Map<K,V>

values

public Collection<V> values()
Specified by:
values in interface Map<K,V>

entrySet

public Set<Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface Map<K,V>

size

public int size()
Specified by:
size in interface Map<K,V>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<K,V>

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map<K,V>

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<K,V>

get

public V get(Object key)
Specified by:
get in interface Map<K,V>

put

public V put(K key,
             V value)
Specified by:
put in interface Map<K,V>

remove

public V remove(Object key)
Specified by:
remove in interface Map<K,V>

putAll

public void putAll(Map<? extends K,? extends V> m)
Specified by:
putAll in interface Map<K,V>

clear

public void clear()
Specified by:
clear in interface Map<K,V>

toString

public String toString()
Overrides:
toString in class Object

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.