#include "pch.h"
#include "System/IO/StringWriter.h"

namespace DotNetDupe {
    namespace System {
        namespace IO {
            StringWriter::StringWriter()
                : m_pSb(new Text::StringBuilder()), m_bIsOpen(true) {
            }

            StringWriter::StringWriter(Text::StringBuilder& sbOutput)
                : m_pSb(&sbOutput), m_bIsOpen(true) {
            }

            void StringWriter::Close() {
                m_bIsOpen = false;
            }

            void StringWriter::Dispose() {
                m_bIsOpen = false;
            }

            void StringWriter::Flush() {
                // Nothing to flush
            }

            Text::EncodingPtr StringWriter::GetEncoding() const {
                return Text::TextEncoding::UTF8();
            }

            String StringWriter::ToString() const {
                return m_pSb->ToString();
            }

            void StringWriter::Write(bool bValue) {
                TextWriter::Write(bValue);
            }

            void StringWriter::Write(char chValue) {
                if (!m_bIsOpen) return;
                m_pSb->Append(chValue);
            }

            void StringWriter::Write(const String& sValue) {
                if (!m_bIsOpen) return;
                m_pSb->Append(sValue);
            }

            void StringWriter::Write(const char* pValue) {
                if (!m_bIsOpen) return;
                m_pSb->Append(pValue);
            }

            void StringWriter::Write(int iValue) {
                TextWriter::Write(iValue);
            }

            void StringWriter::Write(long long llValue) {
                TextWriter::Write(llValue);
            }

            void StringWriter::Write(float fValue) {
                TextWriter::Write(fValue);
            }

            void StringWriter::Write(double dValue) {
                TextWriter::Write(dValue);
            }

            void StringWriter::WriteLine() {
                TextWriter::WriteLine();
            }

            void StringWriter::WriteLine(bool bValue) {
                TextWriter::WriteLine(bValue);
            }

            void StringWriter::WriteLine(char chValue) {
                TextWriter::WriteLine(chValue);
            }

            void StringWriter::WriteLine(const char* pValue) {
                TextWriter::WriteLine(pValue);
            }

            void StringWriter::WriteLine(const String& sValue) {
                TextWriter::WriteLine(sValue);
            }

            void StringWriter::WriteLine(int iValue) {
                TextWriter::WriteLine(iValue);
            }

            void StringWriter::WriteLine(long long llValue) {
                TextWriter::WriteLine(llValue);
            }

            void StringWriter::WriteLine(float fValue) {
                TextWriter::WriteLine(fValue);
            }

            void StringWriter::WriteLine(double dValue) {
                TextWriter::WriteLine(dValue);
            }
        }
    }
}

Generated by OpenCppCoverage (Version: 0.9.9.0)