org.apache.geode.cache.Region.replace()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.7k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中org.apache.geode.cache.Region.replace方法的一些代码示例,展示了Region.replace的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Region.replace方法的具体详情如下:
包路径:org.apache.geode.cache.Region
类名称:Region
方法名:replace

Region.replace介绍

[英]Replaces the entry for a key only if currently mapped to some value. This is equivalent to

if (map.containsKey(key)) { 
return map.put(key, value); 
} else 
return null;

except that the action is performed atomically.

ConcurrentMap operations are supported on partitioned and replicated regions and in client caches. They are also supported on non-empty local regions.

Please read the notes on ConcurrentMap operations in the javadoc for Region.
[中]仅当当前映射到某个值时,才替换键的条目。这相当于

if (map.containsKey(key)) { 
return map.put(key, value); 
} else 
return null;

,只是操作是以原子方式执行的。
在分区和复制区域以及客户端缓存中支持ConcurrentMap操作。非空本地区域也支持它们。
请阅读javadoc for Region中有关ConcurrentMap操作的说明。

代码示例

代码示例来源:origin: apache/geode

@Override
public boolean replace(Object key, Object oldValue, Object newValue) {
 try {
  preOp();
  return this.realRegion.replace(key, oldValue, newValue);
 } finally {
  postOp();
 }
}

代码示例来源:origin: apache/geode

@Override
public Object replace(Object key, Object value) {
 try {
  preOp();
  return this.realRegion.replace(key, value);
 } finally {
  postOp();
 }
}

代码示例来源:origin: apache/geode

@Override
public ByteBuffer processStorageCommand(String key, byte[] value, int flags, Cache cache) {
 Region<Object, ValueWrapper> r = getMemcachedRegion(cache);
 Object oldVal = r.replace(key, ValueWrapper.getWrappedValue(value, flags));
 String reply = null;
 if (oldVal == null) {
  reply = Reply.NOT_STORED.toString();
 } else {
  reply = Reply.STORED.toString();
 }
 return asciiCharset.encode(reply);
}

代码示例来源:origin: apache/geode

private ByteBuffer processAsciiCommand(ByteBuffer buffer, Cache cache) {
  CharBuffer flb = getFirstLineBuffer();
  getAsciiDecoder().reset();
  getAsciiDecoder().decode(buffer, flb, false);
  flb.flip();
  String firstLine = getFirstLine();
  String[] firstLineElements = firstLine.split(" ");

  String key = firstLineElements[1];
  int flags = Integer.parseInt(firstLineElements[2]);
  long expTime = Long.parseLong(firstLineElements[3]);
  int numBytes = Integer.parseInt(firstLineElements[4]);
  long casVersion = Long.parseLong(stripNewline(firstLineElements[5]));

  byte[] value = new byte[numBytes];
  buffer.position(firstLine.length());
  for (int i = 0; i < numBytes; i++) {
   value[i] = buffer.get();
  }

  String reply = Reply.EXISTS.toString();
  Region<Object, ValueWrapper> r = getMemcachedRegion(cache);
  ValueWrapper expected = ValueWrapper.getDummyValue(casVersion);
  if (r.replace(key, expected, ValueWrapper.getWrappedValue(value, flags))) {
   reply = Reply.STORED.toString();
  }

  return asciiCharset.encode(reply);
 }
}

代码示例来源:origin: apache/geode

newVal.putLong(0, newLong);
ValueWrapper newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
 reply = newLong + "\r\n";
 break;

代码示例来源:origin: apache/geode

newVal.putLong(newLong);
ValueWrapper newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
 reply = newLong + "\r\n";
 break;

代码示例来源:origin: apache/geode

pr.replace(Integer.toString(i), Integer.toString(i), "replaced" + i);
assertThat(replaceSucceeded).describedAs("for i=" + i).isTrue();
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isEqualTo(
boolean replaceSucceeded = pr.replace(Integer.toString(i), Integer.toString(i), // wrong
Object replaceResult = pr.replace(Integer.toString(i), "twice replaced" + i);
assertThat(replaceResult).describedAs("for i=" + i).isEqualTo(("replaced" + i));
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isEqualTo(
Object replaceResult = pr.replace(Integer.toString(i), "thrice replaced" + i);
assertThat(replaceResult).describedAs("for i=" + i).isNull();
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isNull();

代码示例来源:origin: apache/geode

if (index != null && ((pushType == ListDirection.RIGHT && existingIndex < index)
  || (pushType == ListDirection.LEFT && existingIndex > index)))
 indexSet = keyRegion.replace(indexKey, existingIndex, index);
else
 break;

代码示例来源:origin: apache/geode

if (r.replace(key, oldValWrapper, newValWrapper)) {
 break;

代码示例来源:origin: apache/geode

newVal.putLong(0, newLong);
newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
 break;

代码示例来源:origin: apache/geode

if (cas != 0L) {
 ValueWrapper expected = ValueWrapper.getDummyValue(cas);
 success = r.replace(key, expected, val);
} else {
 success = r.replace(key, val) != null;

代码示例来源:origin: apache/geode

if (cas != 0L) {
 ValueWrapper expected = ValueWrapper.getDummyValue(cas);
 success = r.replace(key, expected, val);
} else {
 r.put(key, val);

代码示例来源:origin: apache/geode

pr.replace(Integer.toString(i), Integer.toString(i), "replaced" + i);
 assertTrue("for i=" + i, replaceSucceeded);
 assertEquals("for i=" + i, "replaced" + i, pr.get(Integer.toString(i)));
 boolean replaceSucceeded = pr.replace(Integer.toString(i), Integer.toString(i), // wrong
 Object replaceResult = pr.replace(Integer.toString(i), "twice replaced" + i);
 assertEquals("for i=" + i, "replaced" + i, replaceResult);
 assertEquals("for i=" + i, "twice replaced" + i, pr.get(Integer.toString(i)));
 Object replaceResult = pr.replace(Integer.toString(i), "thrice replaced" + i);
 assertNull("for i=" + i, replaceResult);
 assertNull("for i=" + i, pr.get(Integer.toString(i)));
 pr.put(key42169, "initialValue42169");
 pr.localDestroy(key42169);
 boolean success = pr.replace(key42169, "initialValue42169", "newValue42169");
 assertTrue("expected replace to succeed", success);
 pr.destroy(key42169);
assertTrue(pr.replace("keyForNull", null, "no longer invalid"));
assertThatThrownBy(() -> pr.replace("keyForNull", "no longer invalid", null))
  .isExactlyInstanceOf(NullPointerException.class);
assertThatThrownBy(() -> pr.replace("keyForNull", null))
  .isExactlyInstanceOf(NullPointerException.class);
boolean success = pr.replace("otherKeyForNull", null, "no longer invalid");

代码示例来源:origin: apache/geode

private void testAllOperations() {
 ClientCache clientCache = (ClientCache) cache;
 Region<String, String> region =
   clientCache.<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
     .create("internalRegion");
 assertFailure(() -> region.create("Object1", "Value1"));
 assertFailure(() -> region.put("Object1", "Value1"));
 assertFailure(() -> region.putIfAbsent("Object1", "Value1"));
 assertFailure(() -> region.get("Object1"));
 Map<String, String> map = new HashMap<>();
 map.put("Object1", "Value1");
 assertFailure(() -> region.putAll(map));
 List<String> list = new ArrayList<>();
 list.add("Object1");
 assertFailure(() -> region.getAll(list));
 assertFailure(() -> region.removeAll(list));
 assertFailure(() -> region.destroy("Object1"));
 assertFailure(() -> region.remove("Object1"));
 assertFailure(() -> region.replace("Object1", "oldValue", "newValue"));
 assertFailure(() -> region.invalidate("Object1"));
 assertFailure(region::keySetOnServer);
 assertFailure(() -> region.registerInterest("Object1"));
}

代码示例来源:origin: spring-projects/spring-integration

@Override
public boolean replace(String key, String oldValue, String newValue) {
  Assert.notNull(key, "'key' must not be null.");
  Assert.notNull(oldValue, "'oldValue' must not be null.");
  Assert.notNull(newValue, "'newValue' must not be null.");
  return this.region.replace(key, oldValue, newValue);
}

代码示例来源:origin: apache/geode

if (index.equals(opp))
  break;
 indexChanged = keyRegion.replace(indexKey, index, index + incr);
} while (!indexChanged);

代码示例来源:origin: org.springframework.data/spring-data-geode

@Override
public <K, V> V replace(K key, V value) {
  try {
    return this.<K, V>getRegion().replace(key, value);
  }
  catch (GemFireException cause) {
    throw convertGemFireAccessException(cause);
  }
}

代码示例来源:origin: org.springframework.data/spring-data-gemfire

@Override
public <K, V> V replace(K key, V value) {
  try {
    return this.<K, V>getRegion().replace(key, value);
  }
  catch (GemFireException cause) {
    throw convertGemFireAccessException(cause);
  }
}

代码示例来源:origin: org.springframework.data/spring-data-gemfire

@Override
public <K, V> boolean replace(K key, V oldValue, V newValue) {
  try {
    return this.<K, V>getRegion().replace(key, oldValue, newValue);
  }
  catch (GemFireException cause) {
    throw convertGemFireAccessException(cause);
  }
}

代码示例来源:origin: org.springframework.data/spring-data-geode

@Override
public <K, V> boolean replace(K key, V oldValue, V newValue) {
  try {
    return this.<K, V>getRegion().replace(key, oldValue, newValue);
  }
  catch (GemFireException cause) {
    throw convertGemFireAccessException(cause);
  }
}

相关文章

微信公众号

最新文章

更多