System.Data.SqlClient.TdsParser.WriteTextFeed C# (CSharp) Метод

WriteTextFeed() приватный Метод

private WriteTextFeed ( TextDataFeed feed, Encoding encoding, bool needBom, System.Data.SqlClient.TdsParserStateObject stateObj, int size ) : System.Threading.Task
feed TextDataFeed
encoding System.Text.Encoding
needBom bool
stateObj System.Data.SqlClient.TdsParserStateObject
size int
Результат System.Threading.Task
        private async Task WriteTextFeed(TextDataFeed feed, Encoding encoding, bool needBom, TdsParserStateObject stateObj, int size)
        {
            Debug.Assert(encoding == null || !needBom);
            char[] inBuff = new char[constTextBufferSize];

            encoding = encoding ?? new UnicodeEncoding(false, false);

            ConstrainedTextWriter writer = new ConstrainedTextWriter(new StreamWriter(new TdsOutputStream(this, stateObj, null), encoding), size);

            if (needBom)
            {
                if (_asyncWrite)
                {
                    await writer.WriteAsync((char)TdsEnums.XMLUNICODEBOM).ConfigureAwait(false);
                }
                else
                {
                    writer.Write((char)TdsEnums.XMLUNICODEBOM);
                }
            }

            int nWritten = 0;
            do
            {
                int nRead = 0;

                if (_asyncWrite)
                {
                    nRead = await feed._source.ReadBlockAsync(inBuff, 0, constTextBufferSize).ConfigureAwait(false);
                }
                else
                {
                    nRead = feed._source.ReadBlock(inBuff, 0, constTextBufferSize);
                }

                if (nRead == 0)
                {
                    break;
                }

                if (_asyncWrite)
                {
                    await writer.WriteAsync(inBuff, 0, nRead).ConfigureAwait(false);
                }
                else
                {
                    writer.Write(inBuff, 0, nRead);
                }

                nWritten += nRead;
            } while (!writer.IsComplete);

            if (_asyncWrite)
            {
                await writer.FlushAsync().ConfigureAwait(false);
            }
            else
            {
                writer.Flush();
            }
        }
TdsParser