12#ifndef WSF_CONSOLE_HPP
13#define WSF_CONSOLE_HPP
15#include "wsf_export.h"
22#include "UtLogSubscriber.hpp"
23#include "UtOptional.hpp"
62 bool AddMessageP(
const ut::log::Message& aMessage)
noexcept final;
68 bool WriteSingleLine(
const ut::log::Message& aMessage, std::ostream& aStream,
int aDepth = 0)
const noexcept;
71 virtual std::ostream& GetStream() = 0;
73 virtual void FlushStream(
bool aFlush) = 0;
75 bool mSingleLine =
false;
76 bool mForceFlushing =
true;
90 std::ostream& GetStream()
override {
return mStream; }
92 void FlushStream(
bool aFlush)
override;
94 std::ostringstream mStream;
97 ut::log::TypeList mPreviousConsoleSubscriptions;
110 void OpenFile(
const std::string& aFileName);
114 std::ostream& GetStream()
override {
return mStream; }
116 void FlushStream(
bool aFlush)
override;
118 std::string mFileName;
119 std::ofstream mStream;
136 void ProcessInputFile(UtInput& aInput);
137 static void ProcessInputSettings(UtInput& aInput,
OutputSettings& aSettings);
138 static void ProcessInputType(UtInput& aInput, ut::log::TypeList& aTypes);
141 std::map<std::string, OutputSettings> mFileSettings;
144 ut::optional<ConsoleSubscriber> mConsoleSubscriber;
145 std::list<FileSubscriber> mFileSubscribers;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfScenarioExtension()
Definition WsfScenarioExtension.cpp:21
The main controller for a simulation.
Definition WsfSimulation.hpp:109
ConsoleSubscriber(const OutputSettings &aSettings) noexcept
Disables default console output.
Definition WsfConsole.cpp:159
Writes received messages to file on disk.
Definition WsfConsole.hpp:102
void OpenFile(const std::string &aFileName)
Definition WsfConsole.cpp:188
SubscriberBase(const OutputSettings &aSettings) noexcept
Creates and registers the subscriber.
Definition WsfConsole.cpp:41
ScenarioExtension()=default
bool ProcessInput(UtInput &aInput) override
Definition WsfConsole.cpp:214
ScenarioExtension(const ScenarioExtension &)=delete
void SimulationCreated(WsfSimulation &aSimulation) override
Definition WsfConsole.cpp:332
ScenarioExtension & operator=(const ScenarioExtension &)=delete
bool Complete() override
Definition WsfConsole.cpp:343
void UpdateSettings(const OutputSettings &aSettings)
Sets the settings.
Definition WsfConsole.cpp:48
SubscriberBase(const OutputSettings &aSettings) noexcept
Creates and registers the subscriber.
Definition WsfConsole.cpp:41
OutputSettings GetSettings() const noexcept
Returns the current settings.
Definition WsfConsole.cpp:56
Definition WsfConsole.hpp:30
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfConsole.hpp:34
ut::log::TypeList mTypes
Which types to subscribe to.
Definition WsfConsole.hpp:38
OutputSettings()
Definition WsfConsole.cpp:36
bool mForceFlushing
Perform a I/O flush at the end of every log entry.
Definition WsfConsole.hpp:44
bool mSingleLine
Format messages are enabled if Info messages are enabled.
Definition WsfConsole.hpp:41