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

java.lang.Object
  extended by org.infinispan.batch.AutoBatchSupport
      extended by org.infinispan.atomic.AtomicHashMapProxy<K,V>
          extended by org.infinispan.atomic.FineGrainedAtomicHashMapProxy<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>, FineGrainedAtomicMap<K,V>

public class FineGrainedAtomicHashMapProxy<K,V>
extends AtomicHashMapProxy<K,V>
implements FineGrainedAtomicMap<K,V>

A layer of indirection around an FineGrainedAtomicMap 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.

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

Since:
5.1
Author:
Manik Surtani, Vladimir Blagojevic
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.atomic.AtomicHashMapProxy
cache, cacheForWriting, deltaMapKey, flagContainer, startedReadingMap, transactionManager, transactionTable
 
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)
           
protected  AtomicHashMap<K,V> getDeltaMapForWrite()
           
 V getUncommitted(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()
           
 int sizeUncommitted()
           
 String toString()
           
 Collection<V> values()
           
 
Methods inherited from class org.infinispan.atomic.AtomicHashMapProxy
assertValid, getDeltaMapForRead, lookupEntryFromCurrentTransaction, toMap
 
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

getDeltaMapForWrite

protected AtomicHashMap<K,V> getDeltaMapForWrite()
Overrides:
getDeltaMapForWrite in class AtomicHashMapProxy<K,V>

keySet

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

values

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

entrySet

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

size

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

sizeUncommitted

public int sizeUncommitted()

isEmpty

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

containsKey

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

containsValue

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

get

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

getUncommitted

public V getUncommitted(Object key)

put

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

remove

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

putAll

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

clear

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

toString

public String toString()
Overrides:
toString in class AtomicHashMapProxy<K,V>

-->

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