24 #include <boost/circular_buffer.hpp> 26 #include "../../../engine/Util/Log.h" 37 namespace HoverScript {
50 namespace HoverScript {
67 size_t maxLogLines = 512,
68 size_t maxHistory = 64);
72 void InitEnv()
override;
78 void OnSessionChanged(std::shared_ptr<MetaSession> metaSession);
81 void Clear()
override;
82 void SubmitChunkWithHistory(
const std::string &s);
89 idx(idx), level(level), line(line) { }
99 void AddLogLine(
LogLevel level,
const std::string &line);
101 void AddIntroLines();
102 void LogHistory(
const std::string &s);
103 void LogNote(
const std::string &s);
104 void LogInfo(
const std::string &s)
override;
105 void LogError(
const std::string &s)
override;
111 int GetEndLogIndex()
const;
117 template<
class Function>
120 if (!logLines.empty()) {
121 std::for_each(logLines.cbegin(), logLines.cend(), fn);
130 template<
class Function>
133 if (!logLines.empty()) {
134 if (start < baseLogIdx) {
139 size_t endIdx =
static_cast<size_t>(GetEndLogIndex());
140 ReadLogs(start, endIdx, fn);
151 template<
class Function>
152 void ReadLogs(
size_t start,
size_t end, Function fn)
154 if (logLines.empty())
return;
155 if (start > end)
return;
156 size_t endIdx = baseLogIdx + logLines.size() - 1;
157 if (start > endIdx)
return;
158 size_t idx = start - baseLogIdx;
161 fn(logLines.at(idx));
164 if (start < baseLogIdx) start = baseLogIdx;
165 auto startIter = logLines.begin();
166 std::advance(startIter, start - baseLogIdx);
167 auto endIter = logLines.end();
170 std::advance(endIter, end - start + 1);
172 std::for_each(startIter, endIter, fn);
194 static int LQuit(lua_State *L);
const int idx
Definition: SysConsole.h:93
DebugPeer & debugPeer
Definition: SysConsole.h:198
boost::signals2::signal< void()> logClearedSignal_t
Fired when the log is cleared.
Definition: SysConsole.h:180
logClearedSignal_t & GetLogClearedSignal()
Definition: SysConsole.h:181
Scripting peer for system-level control of the game.
Definition: GamePeer.h:56
const LogLevel level
Definition: SysConsole.h:94
LogLine(int idx, LogLevel level, const std::string &line)
Definition: SysConsole.h:88
history_t history
Definition: SysConsole.h:211
Interface for game client shells.
Definition: GameDirector.h:57
Definition: SysConsole.h:86
void ReadLogs(Function fn)
Read all log entries.
Definition: SysConsole.h:118
std::shared_ptr< MetaSession > metaSession
Definition: SysConsole.h:201
GameDirector & director
Definition: SysConsole.h:197
LogLevel
Definition: SysConsole.h:85
GameDirector & director
Definition: TestLabScene.cpp:160
history_t::iterator curHistory
Definition: SysConsole.h:212
boost::signals2::scoped_connection logConn
Definition: SysConsole.h:216
A script environment.
Definition: Env.h:54
logClearedSignal_t logClearedSignal
Definition: SysConsole.h:218
void Advance(Util::OS::timestamp_t tick) override
Definition: SysConsole.h:75
logAddedSignal_t & GetLogAddedSignal()
Definition: SysConsole.h:185
std::string & GetCommandLine()
Definition: SysConsole.h:176
API documentation for a Lua method.
Definition: Method.h:50
bool introWritten
Definition: SysConsole.h:205
std::deque< LogLine > logLines
Definition: SysConsole.h:207
void ReadLogs(size_t start, size_t end, Function fn)
Read a subset of log entries, for a specific range.
Definition: SysConsole.h:152
Base class for debug consoles.
Definition: Console.h:45
InputPeer & inputPeer
Definition: SysConsole.h:200
boost::circular_buffer< std::string > history_t
Definition: SysConsole.h:210
Provides access to debugging tools.
Definition: DebugPeer.h:50
logAdded_t logAddedSignal
Definition: Log.cpp:54
GamePeer & gamePeer
Definition: SysConsole.h:199
std::string commandLine
Definition: SysConsole.h:214
int idx
Definition: SdlDisplay.cpp:254
const std::string line
Definition: SysConsole.h:95
API documentation for a Lua class.
Definition: Class.h:52
Definition: Announcement.h:24
logAddedSignal_t logAddedSignal
Definition: SysConsole.h:219
boost::signals2::scoped_connection sessionChangedConn
Definition: SysConsole.h:203
void ReadLogs(size_t start, Function fn)
Read a subset of log entries, from a starting index to the end.
Definition: SysConsole.h:131
size_t maxLogLines
Definition: SysConsole.h:206
size_t baseLogIdx
Index of the first item in logLines.
Definition: SysConsole.h:208
boost::signals2::signal< void(size_t)> logAddedSignal_t
Fired when a log line is added. Parameter is the log index.
Definition: SysConsole.h:184
Global always-on console.
Definition: SysConsole.h:60
MR_Int64 timestamp_t
Definition: OS.h:55
A script environment.
Definition: Core.h:66