aboutsummaryrefslogtreecommitdiffstats
path: root/src/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend')
-rw-r--r--src/frontend/swdisp.cpp27
-rw-r--r--src/frontend/swlog.cpp95
2 files changed, 122 insertions, 0 deletions
diff --git a/src/frontend/swdisp.cpp b/src/frontend/swdisp.cpp
new file mode 100644
index 0000000..412ce2e
--- /dev/null
+++ b/src/frontend/swdisp.cpp
@@ -0,0 +1,27 @@
+/******************************************************************************
+ * swdisp.cpp - code for base class 'swdisp'. swdisp is the basis for all
+ * types of displays (e.g. raw textout, curses, xwindow, etc.)
+ */
+
+#include <iostream>
+#include <swmodule.h>
+#include <swdisp.h>
+
+static const char *classes[] = {"SWDisplay", "SWObject", 0};
+SWClass SWDisplay::classdef(classes);
+
+/******************************************************************************
+ * SWDisplay::Display - casts a module to a character pointer and displays it to
+ * raw output (overriden for different display types and
+ * module types if necessary)
+ *
+ * ENT: imodule - module to display
+ *
+ * RET: error status
+ */
+
+char SWDisplay::Display(SWModule &imodule)
+{
+ std::cout << (const char *)imodule;
+ return 0;
+}
diff --git a/src/frontend/swlog.cpp b/src/frontend/swlog.cpp
new file mode 100644
index 0000000..277a70d
--- /dev/null
+++ b/src/frontend/swlog.cpp
@@ -0,0 +1,95 @@
+//---------------------------------------------------------------------------
+
+#include <stdarg.h>
+#include <stdio.h>
+#ifndef _MSC_VER
+#include <iostream>
+#endif
+#include "swlog.h"
+//---------------------------------------------------------------------------
+
+
+SWLog *SWLog::systemlog = 0;
+
+
+class __staticsystemlog {
+public:
+ __staticsystemlog() {
+ SWLog::systemlog = new SWLog();
+ }
+ ~__staticsystemlog() {
+ delete SWLog::systemlog;
+ }
+} _staticsystemlog;
+
+
+void SWLog::LogWarning(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (logLevel >= 2) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+#ifndef _MSC_VER
+ std::cerr << msg;
+ std::cerr << std::endl;
+#endif
+ }
+}
+
+
+void SWLog::LogError(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (logLevel) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+#ifndef _MSC_VER
+ std::cerr << msg;
+ std::cerr << std::endl;
+#endif
+ }
+}
+
+
+void SWLog::LogTimedInformation(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (logLevel >= 4) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+#ifndef _MSC_VER
+ std::cout << msg;
+ std::cout << std::endl;
+#endif
+ }
+}
+
+
+void SWLog::LogInformation(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (logLevel >= 3) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+#ifndef _MSC_VER
+ std::cout << msg;
+ std::cout << std::endl;
+#endif
+ }
+}