private static void EncodeList(Stream buffer, IList <object> list) { buffer.Append(ListStart); foreach (var obj in list) { EncodeNextObject(buffer, obj); } buffer.Append(End); }
private static void EncodeDictionary(Stream buffer, IDictionary <string, object> dict) { buffer.Append(DictStart); var sortedKeys = dict.Keys.OrderBy(x => BitConverter.ToString(Encoding.UTF8.GetBytes(x))); foreach (var key in sortedKeys) { EncodeString(buffer, key); EncodeNextObject(buffer, dict[key]); } buffer.Append(End); }
private static Queue Check(int lenF, Lazy <Stream <T> .StreamCell> f, int lenR, Lazy <Stream <T> .StreamCell> r) { if (lenF > C * lenR + 1) { var i = (lenF + lenR) / 2; var j = lenF + lenR - i; var fp = Stream <T> .Take(i, f); var rp = Stream <T> .Append(r, Stream <T> .Reverse(Stream <T> .Drop(i, f))); return(new Queue(i, fp, j, rp)); } if (lenR > C * lenF + 1) { var j = (lenF + lenR) / 2; var i = lenF + lenR - j; var rp = Stream <T> .Take(j, r); var fp = Stream <T> .Append(f, Stream <T> .Reverse(Stream <T> .Drop(j, r))); return(new Queue(i, fp, j, rp)); } return(new Queue(lenF, f, lenR, r)); }
/// <summary> /// Copy a byte to the data stream 'count' times. /// </summary> /// <param name="stream"></param> /// <param name="value"></param> /// <param name="count"></param> public static void Append(this Stream stream, byte value, ulong count) { for (; count > 0; count--) { stream.Append(new[] { value }); } }
private static Lazy <Stream <T> .StreamCell> RotateRev(Lazy <Stream <T> .StreamCell> fc, Lazy <Stream <T> .StreamCell> r, Lazy <Stream <T> .StreamCell> a) { if (fc == Stream <T> .DollarNil) { return(Stream <T> .Append(Stream <T> .Reverse(r), a)); } return(new Lazy <Stream <T> .StreamCell>(() => new Stream <T> .StreamCell(fc.Value.Element, RotateRev(fc.Value.Next, Stream <T> .Drop(C, r), Stream <T> .Append(Stream <T> .Reverse(Stream <T> .Take(C, r)), a))))); }
private static Queue Check(int lenf, Lazy <Stream <T> .StreamCell> f, int lenr, Lazy <Stream <T> .StreamCell> r) { if (lenr <= lenf) { return(new Queue(lenf, f, lenr, r)); } return(new Queue(lenf + lenr, Stream <T> .Append(f, Stream <T> .Reverse(r)), 0, Stream <T> .DollarNil)); }
public void OperatingOnNullStream_ShouldThrowIOException() { //---------------Set up test pack------------------- Stream dst = null; var toAppend = GetRandomBytes(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Expect(() => dst.Append(toAppend)).To.Throw <IOException>(); //---------------Test Result ----------------------- }
public void AppendTest() { var data = new[] { 3, 2, 1 }; var stream = data.Aggregate(Stream <int> .DollarNil, (s1, t1) => new Lazy <Stream <int> .StreamCell>(() => new Stream <int> .StreamCell(t1, s1))); var reverse = Stream <int> .Reverse(stream); var sum = Stream <int> .Append(stream, reverse); Assert.AreEqual("1, 2, 3", DumpStream(stream, false)); Assert.AreEqual("$", DumpStream(reverse, false)); Assert.AreEqual("$1, $2, $3, $3, $2, $1", DumpStream(sum, true)); // the last have of Sum are the same elements in the reverse stream. Assert.AreSame(reverse, sum.Value.Next.Value.Next.Value.Next); }
private void AppendToStream(Stream fileStream, IChunk chunk) { fileStream.Append(chunk); _nextExpectedChunk++; }
private static void EncodeByteArray(Stream buffer, byte[] bytes) { buffer.Append(Encoding.UTF8.GetBytes(Convert.ToString(bytes.Length))); buffer.Append(Divider); buffer.Append(bytes); }
private static void EncodeInt(Stream buffer, long val) { buffer.Append(IntStart); buffer.Append(Encoding.UTF8.GetBytes(Convert.ToString(val))); buffer.Append(End); }
public static void Append(this Stream stream, byte value) { stream.Append(new[] { value }); }
/// <summary> /// Adds a node. /// </summary> /// <param name="node"></param> public override void AddNode(Node node) { _stream.Append(node); }