public void executeOperationTest() { TCPTransport trans = new TCPTransport(System.Net.IPAddress.Loopback, 11222); Codec codec = new Codec(); Serializer s = new DefaultSerializer(); //byte[] key = UTF8Encoding.UTF8.GetBytes("key11"); byte[] key = s.serialize("key12"); byte[] val = s.serialize("ozone"); PutIFAbsentOperation target = new PutIFAbsentOperation(codec, key, null, 0, null, val, 0, 0); Transport transport = trans; byte[] expected = null; byte[] actual; actual = target.executeOperation(transport); Assert.AreEqual(expected, actual); }
/// <summary> /// Puts a new entry to cache only if the specified key is absent. /// </summary> /// <typeparam name="V">Data type of Value</typeparam> /// <typeparam name="K">Data type of Key</typeparam> /// <param name="key">key</param> /// <param name="val">value</param> /// <param name="lifespaninMillis">Lifespan in milliseconds</param> /// <param name="maxIdleTimeinMillis">Maximum idle time in milliseconds</param> public V putIfAbsent <V, K>(K key, V val, int lifespaninMillis, int maxIdleTimeinMillis) { int lifespanSecs = TimeSpan.FromMilliseconds(lifespaninMillis).Seconds; int maxIdleSecs = TimeSpan.FromMilliseconds(maxIdleTimeinMillis).Seconds; PutIFAbsentOperation op = operationsFactory.newPutIfAbsentOperation(serializer.serialize(key), serializer.serialize(val), lifespanSecs, maxIdleSecs); transport = transportFactory.getTransport(); try { } finally { transportFactory.releaseTransport(transport); } byte[] bytes = (byte[])op.executeOperation(transport); return((V)serializer.deserialize(bytes)); }