public async Task <string> Get(String key, CommandOpCode opCode = CommandOpCode.Get) { GetRequest getRequest = new GetRequest(opCode); getRequest.Key = key; byte[] packet = getRequest.Serialize(); await this.stream.WriteAsync(packet, 0, packet.Length); byte[] response = new byte[2048]; int bytesRead = await this.stream.ReadAsync(response, 0, response.Length); GetResponse getResponse = (GetResponse)ProtocolPacket.Construct(response, 0, bytesRead); return(getResponse.Value); }
public void Read(BinaryReader reader) { this.Magic = reader.ReadByte(); this.OpCode = (CommandOpCode)reader.ReadByte(); this.KeyLength = reader.ReadUInt16FromBigEndian(); this.ExtrasLength = reader.ReadByte(); this.DataType = reader.ReadByte(); this.Status = (ResponseStatus)reader.ReadUInt16FromBigEndian(); this.TotalBodyLength = reader.ReadUInt32FromBigEndian(); this.Opaque = reader.ReadUInt32FromBigEndian(); this.CAS = reader.ReadUInt64FromBigEndian(); if (this.ExtrasLength != 0) { this.Extras = new CommandExtras(this.ExtrasLength); this.Extras.Read(reader); } }
public async Task <ResponseStatus> Set(String key, String value, CommandOpCode opCode = CommandOpCode.Set) { SetRequest setRequest = new SetRequest(opCode); setRequest.Key = key; setRequest.Value = value; byte[] packet = setRequest.Serialize(); await this.stream.WriteAsync(packet, 0, packet.Length); byte[] response = new byte[2048]; int bytesRead = await this.stream.ReadAsync(response, 0, response.Length); SetResponse setResponse = (SetResponse)ProtocolPacket.Construct(response, 0, bytesRead); return(setResponse.Header.Status); }
public GetRequest(CommandOpCode opCode = CommandOpCode.Get) { this.Header = new ProtocolHeader(); this.Header.OpCode = opCode; this.Header.Magic = ProtocolPacket.RequestMagic; }