Sierra Toolkit  Version of the Day
WriterRegistry.hpp
1 #ifndef STK_UTIL_DIAG_WriterRegsitry_h
2 #define STK_UTIL_DIAG_WriterRegsitry_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
7 
8 #include <stk_util/util/string_case_compare.hpp>
9 #include <stk_util/diag/Writer.hpp>
10 
11 #include <stk_util/util/FeatureTest.hpp>
12 #include <stk_util/diag/Writer_fwd.hpp>
13 #include <stk_util/diag/WriterParser.hpp>
14 
15 namespace sierra {
16 namespace Diag {
17 
22 
28 class WriterRegistry : public std::map<std::string, std::pair<stk_classic::diag::Writer *, OptionMaskParser *>, stk_classic::LessCase>
29 {
30 public:
32 
33  ~WriterRegistry();
34 };
35 
36 class WriterThrowSafe
37 {
38 public:
39  WriterThrowSafe();
40 
41  ~WriterThrowSafe();
42 
43 private:
44  std::vector<stk_classic::diag::WriterThrowSafe *> m_writerVector;
45 };
46 
54 WriterRegistry &getWriterRegistry();
55 
66 void registerWriter(const std::string &name, Writer &diag_writer, OptionMaskParser &option_parser);
67 
78 void unregisterWriter(const std::string &name, Writer &diag_writer);
79 
83 
84 } // namespace Diag
85 } // namespace sierra
86 
87 #include <stk_util/diag/WriterExt.hpp>
88 
89 #endif // STK_UTIL_DIAG_WriterRegsitry_h
90 
Definition: Env.cpp:53
void registerWriter(const std::string &name, Writer &diag_writer, OptionMaskParser &option_parser)
Function registerWriter registers a diagnostic writer with the diagnostic writer registry.
Typedef WriterRegistry is a mapping from name to diagnostic writer.
WriterRegistry & getWriterRegistry()
Function getWriterRegistry returns a reference to the diagnostic writer registry. ...
void unregisterWriter(const std::string &name, Writer &writer)
Member function unregisterWriter unregisters a diagnostic writer from the diagnostic writer registry...