From efa2c8f41aa5cd2c27990fd9b57ea0eff06976e7 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 21 Dec 2018 11:00:28 -0500 Subject: Feature/remove app context (#765) * Remove AppContext. Use StdChannels to hold writers, and TestToolUtil to hold test tool specific functionality. * StdChannels -> StdWriters * getStdOut -> getOut, getStdError -> getError --- source/core/slang-std-writers.cpp | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 source/core/slang-std-writers.cpp (limited to 'source/core/slang-std-writers.cpp') diff --git a/source/core/slang-std-writers.cpp b/source/core/slang-std-writers.cpp new file mode 100644 index 000000000..963af9ef5 --- /dev/null +++ b/source/core/slang-std-writers.cpp @@ -0,0 +1,43 @@ + +#include "slang-std-writers.h" + +namespace Slang +{ + +/* static */StdWriters* StdWriters::s_singleton = nullptr; + +/* static */StdWriters* StdWriters::getDefault() +{ + static StdWriters* s_context = nullptr; + + if (!s_context) + { + static FileWriter s_stdError(stderr, WriterFlag::IsStatic | WriterFlag::IsUnowned | WriterFlag::AutoFlush); + static FileWriter s_stdOut(stdout, WriterFlag::IsStatic | WriterFlag::IsUnowned | WriterFlag::AutoFlush); + + static StdWriters s_contextVar; + s_context = &s_contextVar; + + s_context->setWriter(SLANG_WRITER_CHANNEL_STD_ERROR, &s_stdError); + s_context->setWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT, &s_stdOut); + } + return s_context; +} + +/* static */StdWriters* StdWriters::initDefault() +{ + StdWriters* context = getDefault(); + setSingleton(context); + return context; +} + +void StdWriters::setRequestWriters(SlangCompileRequest* request) +{ + for (int i = 0; i < SLANG_WRITER_CHANNEL_COUNT_OF; ++i) + { + spSetWriter(request, SlangWriterChannel(i), m_writers[i]); + } +} + +} + -- cgit v1.2.3