Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadLineAsyncInternal()

async Task< string > System.IO.StreamReader.ReadLineAsyncInternal ( )
inlineprivateinherited

Definition at line 707 of file StreamReader.cs.

708 {
709 bool flag = _charPos == _charLen;
710 bool flag2 = flag;
711 if (flag2)
712 {
713 flag2 = await ReadBufferAsync(CancellationToken.None).ConfigureAwait(continueOnCapturedContext: false) == 0;
714 }
715 if (flag2)
716 {
717 return null;
718 }
719 StringBuilder sb = null;
720 do
721 {
722 char[] charBuffer = _charBuffer;
723 int charLen = _charLen;
724 int charPos = _charPos;
725 int num = charPos;
726 do
727 {
728 char c = charBuffer[num];
729 if (c == '\r' || c == '\n')
730 {
731 string s;
732 if (sb != null)
733 {
734 sb.Append(charBuffer, charPos, num - charPos);
735 s = sb.ToString();
736 }
737 else
738 {
739 s = new string(charBuffer, charPos, num - charPos);
740 }
741 charPos = (_charPos = num + 1);
742 bool flag3 = c == '\r';
743 bool flag4 = flag3;
744 if (flag4)
745 {
746 bool flag5 = charPos < charLen;
747 bool flag6 = flag5;
748 if (!flag6)
749 {
750 flag6 = await ReadBufferAsync(CancellationToken.None).ConfigureAwait(continueOnCapturedContext: false) > 0;
751 }
752 flag4 = flag6;
753 }
754 if (flag4)
755 {
756 charPos = _charPos;
757 if (_charBuffer[charPos] == '\n')
758 {
759 _charPos = charPos + 1;
760 }
761 }
762 return s;
763 }
764 num++;
765 }
766 while (num < charLen);
767 num = charLen - charPos;
768 if (sb == null)
769 {
770 sb = new StringBuilder(num + 80);
771 }
772 sb.Append(charBuffer, charPos, num);
773 }
774 while (await ReadBufferAsync(CancellationToken.None).ConfigureAwait(continueOnCapturedContext: false) > 0);
775 return sb.ToString();
776 }
async ValueTask< int > ReadBufferAsync(CancellationToken cancellationToken)
override string ToString()
StringBuilder Append(char value, int repeatCount)
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.StreamReader._charBuffer, System.IO.StreamReader._charLen, System.IO.StreamReader._charPos, System.Text.StringBuilder.Append(), System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.Threading.CancellationToken.None, System.IO.StreamReader.ReadBufferAsync(), System.s, and System.Text.StringBuilder.ToString().

Referenced by System.IO.StreamReader.ReadLineAsync().