@Override public Set getAdditionalKeysForIterator(LocalRegion currRgn) { if (this.realDeal == null) { return null; } return getRealDeal(null, currRgn).getAdditionalKeysForIterator(currRgn); }
@Override public void resume() { if (this.realDeal != null) { getRealDeal(null, null).resume(); } }
@Override public void rollback() { try { getRealDeal(null, null).rollback(); } finally { inProgress = false; } }
@Override public Entry getEntryOnRemote(KeyInfo keyInfo, LocalRegion localRegion, boolean allowTombstones) throws DataLocationException { this.operationCount++; TXStateInterface tx = getRealDeal(keyInfo, localRegion); assert (tx instanceof TXState); return tx.getEntryOnRemote(keyInfo, localRegion, allowTombstones); }
@Override public int getChanges() { assertBootstrapped(); return getRealDeal(null, null).getChanges(); }
@Override public TXEvent getEvent() { assertBootstrapped(); return getRealDeal(null, null).getEvent(); }
@Override public boolean needsLargeModCount() { assertBootstrapped(); return getRealDeal(null, null).needsLargeModCount(); }
@Override public TXRegionState readRegion(InternalRegion r) { assertBootstrapped(); return getRealDeal(null, r).readRegion(r); }
@Override public void rmRegion(LocalRegion r) { assertBootstrapped(); getRealDeal(null, r).rmRegion(r); }
@Override public Collection<InternalRegion> getRegions() { assertBootstrapped(); return getRealDeal(null, null).getRegions(); }
@Override public List getEvents() { assertBootstrapped(); return getRealDeal(null, null).getEvents(); }
@Override public TXRegionState writeRegion(InternalRegion r) { assertBootstrapped(); return getRealDeal(null, r).writeRegion(r); }
@Override public boolean containsKey(KeyInfo keyInfo, LocalRegion localRegion) { try { this.operationCount++; boolean retVal = getRealDeal(keyInfo, localRegion).containsKey(keyInfo, localRegion); trackBucketForTx(keyInfo); return retVal; } catch (TransactionDataRebalancedException | PrimaryBucketException re) { throw getTransactionException(keyInfo, re); } }
@Override public Entry getEntry(KeyInfo keyInfo, LocalRegion region, boolean allowTombstones) { try { this.operationCount++; Entry retVal = getRealDeal(keyInfo, region).getEntry(keyInfo, region, allowTombstones); trackBucketForTx(keyInfo); return retVal; } catch (TransactionDataRebalancedException | PrimaryBucketException re) { throw getTransactionException(keyInfo, re); } }
@Override public void setTarget(DistributedMember target) { assert this.target == null; getRealDeal(target); if (this.target == null && isRealDealLocal()) { assert target.equals(getCache().getDistributedSystem().getDistributedMember()); this.target = target; } }
@Override public Entry accessEntry(KeyInfo keyInfo, LocalRegion region) { try { this.operationCount++; Entry retVal = getRealDeal(keyInfo, region).accessEntry(keyInfo, region); trackBucketForTx(keyInfo); return retVal; } catch (TransactionDataRebalancedException | PrimaryBucketException re) { throw getTransactionException(keyInfo, re); } }
@Override public void invalidateOnRemote(EntryEventImpl event, boolean invokeCallbacks, boolean forceNewEntry) throws DataLocationException { this.operationCount++; TXStateInterface tx = getRealDeal(event.getKeyInfo(), event.getRegion()); assert (tx instanceof TXState); tx.invalidateOnRemote(event, invokeCallbacks, forceNewEntry); }
@Override public boolean containsValueForKey(KeyInfo keyInfo, LocalRegion region) { try { this.operationCount++; boolean retVal = getRealDeal(keyInfo, region).containsValueForKey(keyInfo, region); trackBucketForTx(keyInfo); return retVal; } catch (TransactionDataRebalancedException | PrimaryBucketException re) { throw getTransactionException(keyInfo, re); } }
@Override public void validateExecution(Function function, Set targetMembers) { InternalCache cache = GemFireCacheImpl.getInstance(); if (cache != null && cache.getTxManager().getTXState() != null) { TXStateProxyImpl tx = (TXStateProxyImpl) cache.getTxManager().getTXState(); tx.getRealDeal(null, region); tx.incOperationCount(); } }
@Override public void invalidateExistingEntry(EntryEventImpl event, boolean invokeCallbacks, boolean forceNewEntry) { try { this.operationCount++; getRealDeal(event.getKeyInfo(), event.getRegion()).invalidateExistingEntry(event, invokeCallbacks, forceNewEntry); trackBucketForTx(event.getKeyInfo()); } catch (TransactionDataRebalancedException | PrimaryBucketException re) { throw getTransactionException(event.getKeyInfo(), re); } }