summaryrefslogtreecommitdiff
path: root/deimos/core/os.h
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-04 16:08:55 +0200
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-04 16:08:55 +0200
commit24bb0db16d2fcd94a5919f616dd9a50b3a131752 (patch)
tree80850a5bb79d334cc66ab2427daea238d51df1ea /deimos/core/os.h
parentf878f9e4c42f02585e57bb35c3aabf9f69ee3834 (diff)
Add io Writer
Diffstat (limited to 'deimos/core/os.h')
-rw-r--r--deimos/core/os.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/deimos/core/os.h b/deimos/core/os.h
index 95b662b..88b1c55 100644
--- a/deimos/core/os.h
+++ b/deimos/core/os.h
@@ -2,6 +2,7 @@
#include "deimos/core/base.h"
#include "deimos/core/id_name.h"
+#include "deimos/core/io.h"
namespace deimos
{
@@ -21,7 +22,7 @@ public:
virtual ~OsConsoleApi() = default;
- virtual void Write(OsConsoleType, Span<const char> data) = 0;
+ virtual void Write(OsConsoleType, Span<const std::byte> data) = 0;
};
class OsApi
@@ -32,5 +33,21 @@ public:
OsConsoleApi* console{};
};
+class OsConsoleWriter : public IWriter
+{
+ OsConsoleApi* m_api;
+ OsConsoleType m_type;
+
+public:
+ constexpr OsConsoleWriter(OsConsoleApi* api, OsConsoleType type) :
+ m_api{api}, m_type{type}
+ {}
+
+ constexpr void Write(Span<const std::byte> data) override
+ {
+ m_api->Write(m_type, data);
+ }
+};
+
} // namespace deimos