public CounterOperation(ICounter counter, CounterOp op) { if (counter == null) { throw new ArgumentNullException("counter"); } elems = new Tuple <ICounter, CounterOp>(counter, op); }
private void CounterOperation(CounterOp op) { if (op.Type == 0) { List.RemoveAt(op.Index); } else if (op.Type == 1) { List[op.Index] = op.Value; } else { List.Insert(op.Index, op.Value); } }
public void Should_Build_DtUpdateReq_Correctly() { var updateCounterCommandBuilder = new UpdateCounter.Builder(DefaultIncrement); var q1 = new Quorum(1); var q2 = new Quorum(2); var q3 = new Quorum(3); updateCounterCommandBuilder .WithBucketType(BucketType) .WithBucket(Bucket) .WithKey(Key) .WithW(q3) .WithPW(q1) .WithDW(q2) .WithReturnBody(true) .WithIncludeContext(false) .WithTimeout(TimeSpan.FromSeconds(20)); UpdateCounter updateCounterCommand = updateCounterCommandBuilder.Build(); DtUpdateReq protobuf = (DtUpdateReq)updateCounterCommand.ConstructPbRequest(); Assert.AreEqual(Encoding.UTF8.GetBytes(BucketType), protobuf.type); Assert.AreEqual(Encoding.UTF8.GetBytes(Bucket), protobuf.bucket); Assert.AreEqual(Encoding.UTF8.GetBytes(Key), protobuf.key); Assert.AreEqual(q3, protobuf.w); Assert.AreEqual(q1, protobuf.pw); Assert.AreEqual(q2, protobuf.dw); Assert.IsTrue(protobuf.return_body); Assert.IsFalse(protobuf.include_context); Assert.AreEqual(20000, protobuf.timeout); CounterOp counterOpMsg = protobuf.op.counter_op; Assert.AreEqual(DefaultIncrement, counterOpMsg.increment); }
public CounterUpdate(ICounter counter, CounterOp update) { elems = new Tuple <ICounter, CounterOp>(counter, update); }
private static MapOp Populate(MapOperation mapOperation) { var mapOp = new MapOp(); if (mapOperation.HasRemoves) { foreach (var removeCounter in mapOperation.RemoveCounters) { RiakString counterName = removeCounter.Key; var field = new MapField { name = counterName, type = MapField.MapFieldType.COUNTER }; mapOp.removes.Add(field); } foreach (var removeSet in mapOperation.RemoveSets) { RiakString setName = removeSet.Key; var field = new MapField { name = setName, type = MapField.MapFieldType.SET }; mapOp.removes.Add(field); } foreach (var removeRegister in mapOperation.RemoveRegisters) { RiakString registerName = removeRegister.Key; var field = new MapField { name = registerName, type = MapField.MapFieldType.REGISTER }; mapOp.removes.Add(field); } foreach (var removeFlag in mapOperation.RemoveFlags) { RiakString flagName = removeFlag.Key; var field = new MapField { name = flagName, type = MapField.MapFieldType.FLAG }; mapOp.removes.Add(field); } foreach (var removeMap in mapOperation.RemoveMaps) { RiakString mapName = removeMap.Key; var field = new MapField { name = mapName, type = MapField.MapFieldType.MAP }; mapOp.removes.Add(field); } } foreach (var incrementCounter in mapOperation.IncrementCounters) { RiakString counterName = incrementCounter.Key; long increment = incrementCounter.Value; var field = new MapField { name = counterName, type = MapField.MapFieldType.COUNTER }; var counterOp = new CounterOp { increment = increment }; var update = new MapUpdate { field = field, counter_op = counterOp }; mapOp.updates.Add(update); } foreach (var addToSet in mapOperation.AddToSets) { RiakString setName = addToSet.Key; IList <RiakString> setAdds = addToSet.Value; var field = new MapField { name = setName, type = MapField.MapFieldType.SET }; var setOp = new SetOp(); setOp.adds.AddRange(setAdds.Select(v => (byte[])v)); var update = new MapUpdate { field = field, set_op = setOp }; mapOp.updates.Add(update); } foreach (var removeFromSet in mapOperation.RemoveFromSets) { RiakString setName = removeFromSet.Key; IList <RiakString> setRemoves = removeFromSet.Value; var field = new MapField { name = setName, type = MapField.MapFieldType.SET }; var setOp = new SetOp(); setOp.removes.AddRange(setRemoves.Select(v => (byte[])v)); var update = new MapUpdate { field = field, set_op = setOp }; mapOp.updates.Add(update); } foreach (var registerToSet in mapOperation.RegistersToSet) { RiakString registerName = registerToSet.Key; RiakString registerValue = registerToSet.Value; var field = new MapField { name = registerName, type = MapField.MapFieldType.REGISTER }; var update = new MapUpdate { field = field, register_op = registerValue }; mapOp.updates.Add(update); } foreach (var flagToSet in mapOperation.FlagsToSet) { RiakString flagName = flagToSet.Key; bool flagValue = flagToSet.Value; var field = new MapField { name = flagName, type = MapField.MapFieldType.FLAG }; var update = new MapUpdate { field = field, flag_op = flagValue ? MapUpdate.FlagOp.ENABLE : MapUpdate.FlagOp.DISABLE }; mapOp.updates.Add(update); } foreach (var map in mapOperation.Maps) { RiakString mapName = map.Key; MapOperation innerMapOperation = map.Value; var field = new MapField { name = mapName, type = MapField.MapFieldType.MAP }; MapOp innerMapOp = Populate(innerMapOperation); var update = new MapUpdate { field = field, map_op = innerMapOp }; mapOp.updates.Add(update); } return(mapOp); }