diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2018-12-21 11:00:28 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-21 11:00:28 -0500 |
| commit | efa2c8f41aa5cd2c27990fd9b57ea0eff06976e7 (patch) | |
| tree | 4c1a4d8e6e71e81c42cfbf315610e380d75527bf /source/core/slang-std-writers.h | |
| parent | b5bda9b3d155234be079debe6997cbc900773cf2 (diff) | |
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
Diffstat (limited to 'source/core/slang-std-writers.h')
| -rw-r--r-- | source/core/slang-std-writers.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/source/core/slang-std-writers.h b/source/core/slang-std-writers.h new file mode 100644 index 000000000..d580842eb --- /dev/null +++ b/source/core/slang-std-writers.h @@ -0,0 +1,44 @@ +#ifndef SLANG_STD_WRITERS_H +#define SLANG_STD_WRITERS_H + +#include "slang-writer.h" +#include "../../slang-com-ptr.h" + +namespace Slang +{ + +/* Holds standard writers for the channels */ +class StdWriters +{ +public: + ISlangWriter * getWriter(SlangWriterChannel chan) const { return m_writers[chan]; } + void setWriter(SlangWriterChannel chan, ISlangWriter* writer) { m_writers[chan] = writer; } + + /// Set the writers on the SlangCompileRequest + void setRequestWriters(SlangCompileRequest* request); + + /// Ctor + StdWriters() {} + + /// Initialize a default context + static StdWriters* initDefault(); + + static StdWriters* getDefault(); + + static StdWriters* getSingleton() { return s_singleton; } + static void setSingleton(StdWriters* context) { s_singleton = context; } + + static WriterHelper getError() { return getSingleton()->getWriter(SLANG_WRITER_CHANNEL_STD_ERROR); } + static WriterHelper getOut() { return getSingleton()->getWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT); } + static WriterHelper getDiagnostic() { return getSingleton()->getWriter(SLANG_WRITER_CHANNEL_DIAGNOSTIC); } + +protected: + + ComPtr<ISlangWriter> m_writers[SLANG_WRITER_CHANNEL_COUNT_OF]; + + static StdWriters* s_singleton; +}; + +} + +#endif |
