public void MapRemove(String name, String key, IKVMapListener listener) { if (!IsConnected()) { throw new Exception("not connected"); } JsonObject envelope = new JsonObject(); // synchronized to ensure message sequence numbers are ordered lock (writeLock) { long seqNum = Interlocked.Increment(ref messageIdGenerator); envelope.Add(ProtocolConstants.OP_FIELD, ProtocolOpConstants.OP_MAP_REMOVE); if (qos) { envelope.Add(ProtocolConstants.SEQ_NUM_FIELD, seqNum); } if (name != null) { envelope.Add(ProtocolConstants.MAP_FIELD, name); } if (key != null) { envelope.Add(ProtocolConstants.KEY_FIELD, key); } MapContext ctx = new MapContext(seqNum, envelope.ToString(), key, null, listener); requests.Put(seqNum, ctx); Queue(ctx); } }
public void MapSet(String name, String key, IMessage value, IKVMapListener listener) { if (!IsConnected()) { throw new Exception("not connected"); } JsonObject envelope = new JsonObject(); // synchronized to ensure message sequence numbers are ordered lock (writeLock) { long seqNum = Interlocked.Increment(ref messageIdGenerator); envelope.Add(ProtocolConstants.OP_FIELD, ProtocolOpConstants.OP_MAP_SET); if (qos) { envelope.Add(ProtocolConstants.SEQ_NUM_FIELD, seqNum); } if (name != null) { envelope.Add(ProtocolConstants.MAP_FIELD, name); } if (key != null) { envelope.Add(ProtocolConstants.KEY_FIELD, key); } if (value != null) { envelope.Add(ProtocolConstants.VALUE_FIELD, ((JSONMessage)value)._rawData()); } MapContext ctx = new MapContext(seqNum, envelope.ToString(), key, value, listener); if (maxMessageSize > 0 && ctx.GetJson().Length > maxMessageSize) { throw new Exception("maximum message size exceeded"); } requests.Put(seqNum, ctx); Queue(ctx); } }