public static EncodeUInt32 ( uint value, byte buffer, int offset ) : void | ||
value | uint | |
buffer | byte | |
offset | int | |
return | void |
protected override BinaryRequest Build() { OpCode op; switch (this.mode) { case StoreMode.Add: op = OpCode.Add; break; case StoreMode.Set: op = OpCode.Set; break; case StoreMode.Replace: op = OpCode.Replace; break; default: throw new ArgumentOutOfRangeException("mode", mode + " is not supported"); } var extra = new byte[8]; BinaryConverter.EncodeUInt32((uint)this.value.Flags, extra, 0); BinaryConverter.EncodeUInt32(expires, extra, 4); var request = new BinaryRequest(op) { Key = this.Key, Cas = this.Cas, Extra = new ArraySegment <byte>(extra), Data = this.value.Data }; return(request); }
public static unsafe void EncodeUInt32(uint value, byte[] buffer, int offset) { fixed(byte *bufferPtr = buffer) { BinaryConverter.EncodeUInt32(value, bufferPtr, offset); } }
protected unsafe void UpdateExtra(BinaryRequest request) { byte[] extra = new byte[20]; fixed(byte *buffer = extra) { BinaryConverter.EncodeUInt64(this._delta, buffer, 0); BinaryConverter.EncodeUInt64(this._defaultValue, buffer, 8); BinaryConverter.EncodeUInt32(this._expires, buffer, 16); } request.Extra = new ArraySegment <byte>(extra); }
protected override BinaryRequest Build() { var extra = new byte[4]; BinaryConverter.EncodeUInt32(expires, extra, 0); var request = new BinaryRequest(OpCode.Touch) { Key = this.Key, Extra = new ArraySegment <byte>(extra) }; return(request); }
protected unsafe void UpdateExtra(BinaryRequest request) { if (mode == MutationMode.Touch) { Span <byte> extra = stackalloc byte[4]; BinaryPrimitives.WriteUInt32BigEndian(extra, this.expires); request.Extra = new ArraySegment <byte>(extra.ToArray()); } else { byte[] extra = new byte[20]; fixed(byte *buffer = extra) { BinaryConverter.EncodeUInt64(this.delta, buffer, 0); BinaryConverter.EncodeUInt64(this.defaultValue, buffer, 8); BinaryConverter.EncodeUInt32(this.expires, buffer, 16); } request.Extra = new ArraySegment <byte>(extra); } }