void _OnDecodeComplete(IFuture f) { if (Parent.IsDisposed) { Result.Dispose(); return; } var e = f.Error; if (e != null) { Buffer.Dispose(); Result.Fail(e); } else { int numChars = (int)f.Result; if (numChars > 0) { ProcessDecodedChars(); } else { string resultString = Buffer.DisposeAndGetContents(); if (resultString.Length == 0) { resultString = null; } Result.Complete(resultString); } } }
public void TestRemoveLastCharacter() { var buffer = new CharacterBuffer(); int size = buffer.Capacity; for (int i = 0; i < size; i++) buffer.Append('a'); for (int i = 0; i < size; i++) buffer.Remove(buffer.Length - 1, 1); buffer.Dispose(); }