diff --git a/Kernel/Bus/VirtIO/Console.h b/Kernel/Bus/VirtIO/Console.h index 65c2f3770c..0d059d290c 100644 --- a/Kernel/Bus/VirtIO/Console.h +++ b/Kernel/Bus/VirtIO/Console.h @@ -31,7 +31,7 @@ public: virtual void initialize() override; private: - virtual StringView class_name() const override { return "VirtIOConsole"; } + virtual StringView class_name() const override { return "VirtIOConsole"sv; } explicit Console(PCI::DeviceIdentifier const&); enum class ControlEvent : u16 { DeviceReady = 0, diff --git a/Kernel/Bus/VirtIO/ConsolePort.h b/Kernel/Bus/VirtIO/ConsolePort.h index 0282d95a3a..d9b246382d 100644 --- a/Kernel/Bus/VirtIO/ConsolePort.h +++ b/Kernel/Bus/VirtIO/ConsolePort.h @@ -35,7 +35,7 @@ public: private: constexpr static size_t RINGBUFFER_SIZE = 2 * PAGE_SIZE; - virtual StringView class_name() const override { return "VirtIOConsolePort"; } + virtual StringView class_name() const override { return "VirtIOConsolePort"sv; } virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual KResultOr read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override; diff --git a/Kernel/Bus/VirtIO/Device.h b/Kernel/Bus/VirtIO/Device.h index 88d8ac5e91..a46adebcab 100644 --- a/Kernel/Bus/VirtIO/Device.h +++ b/Kernel/Bus/VirtIO/Device.h @@ -92,7 +92,7 @@ public: virtual void initialize(); protected: - virtual StringView class_name() const { return "VirtIO::Device"; } + virtual StringView class_name() const { return "VirtIO::Device"sv; } explicit Device(PCI::DeviceIdentifier const&); struct MappedMMIO { OwnPtr base; diff --git a/Kernel/Bus/VirtIO/RNG.h b/Kernel/Bus/VirtIO/RNG.h index a77b284a39..aeaa6da46c 100644 --- a/Kernel/Bus/VirtIO/RNG.h +++ b/Kernel/Bus/VirtIO/RNG.h @@ -26,7 +26,7 @@ public: virtual void initialize() override; private: - virtual StringView class_name() const override { return "VirtIOConsole"; } + virtual StringView class_name() const override { return "VirtIOConsole"sv; } explicit RNG(PCI::DeviceIdentifier const&); virtual bool handle_device_config_change() override; virtual void handle_queue_update(u16 queue_index) override; diff --git a/Kernel/Devices/ConsoleDevice.h b/Kernel/Devices/ConsoleDevice.h index 95b5538ec6..ec039a972f 100644 --- a/Kernel/Devices/ConsoleDevice.h +++ b/Kernel/Devices/ConsoleDevice.h @@ -26,7 +26,7 @@ public: virtual bool can_write(const Kernel::OpenFileDescription&, size_t) const override { return true; } virtual Kernel::KResultOr read(OpenFileDescription&, u64, Kernel::UserOrKernelBuffer&, size_t) override; virtual Kernel::KResultOr write(OpenFileDescription&, u64, const Kernel::UserOrKernelBuffer&, size_t) override; - virtual StringView class_name() const override { return "Console"; } + virtual StringView class_name() const override { return "Console"sv; } void put_char(char); diff --git a/Kernel/Devices/FullDevice.h b/Kernel/Devices/FullDevice.h index 2336e48cff..fc7e9926ec 100644 --- a/Kernel/Devices/FullDevice.h +++ b/Kernel/Devices/FullDevice.h @@ -26,7 +26,7 @@ private: virtual KResultOr write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual bool can_write(const OpenFileDescription&, size_t) const override { return true; } - virtual StringView class_name() const override { return "FullDevice"; } + virtual StringView class_name() const override { return "FullDevice"sv; } }; } diff --git a/Kernel/Devices/HID/KeyboardDevice.h b/Kernel/Devices/HID/KeyboardDevice.h index b6f80ddf4b..60c10c25fe 100644 --- a/Kernel/Devices/HID/KeyboardDevice.h +++ b/Kernel/Devices/HID/KeyboardDevice.h @@ -49,7 +49,7 @@ protected: mutable Spinlock m_queue_lock; CircularQueue m_queue; // ^CharacterDevice - virtual StringView class_name() const override { return "KeyboardDevice"; } + virtual StringView class_name() const override { return "KeyboardDevice"sv; } u8 m_modifiers { 0 }; bool m_caps_lock_to_ctrl_pressed { false }; diff --git a/Kernel/Devices/HID/MouseDevice.h b/Kernel/Devices/HID/MouseDevice.h index 14029050fe..41a939072d 100644 --- a/Kernel/Devices/HID/MouseDevice.h +++ b/Kernel/Devices/HID/MouseDevice.h @@ -34,7 +34,7 @@ public: protected: MouseDevice(); // ^CharacterDevice - virtual StringView class_name() const override { return "MouseDevice"; } + virtual StringView class_name() const override { return "MouseDevice"sv; } mutable Spinlock m_queue_lock; CircularQueue m_queue; diff --git a/Kernel/Devices/HID/PS2KeyboardDevice.h b/Kernel/Devices/HID/PS2KeyboardDevice.h index 39f440a0a9..0fc1c6b440 100644 --- a/Kernel/Devices/HID/PS2KeyboardDevice.h +++ b/Kernel/Devices/HID/PS2KeyboardDevice.h @@ -44,7 +44,7 @@ private: virtual bool handle_irq(const RegisterState&) override; // ^CharacterDevice - virtual StringView class_name() const override { return "KeyboardDevice"; } + virtual StringView class_name() const override { return "KeyboardDevice"sv; } }; } diff --git a/Kernel/Devices/KCOVDevice.h b/Kernel/Devices/KCOVDevice.h index 576577dff5..7905e4002d 100644 --- a/Kernel/Devices/KCOVDevice.h +++ b/Kernel/Devices/KCOVDevice.h @@ -29,7 +29,7 @@ public: protected: KCOVDevice(); - virtual StringView class_name() const override { return "KCOVDevice"; } + virtual StringView class_name() const override { return "KCOVDevice"sv; } virtual bool can_read(const OpenFileDescription&, size_t) const override final { return true; } virtual bool can_write(const OpenFileDescription&, size_t) const override final { return true; } diff --git a/Kernel/Devices/MemoryDevice.h b/Kernel/Devices/MemoryDevice.h index 016ab6c556..363a09bd82 100644 --- a/Kernel/Devices/MemoryDevice.h +++ b/Kernel/Devices/MemoryDevice.h @@ -26,7 +26,7 @@ public: private: MemoryDevice(); - virtual StringView class_name() const override { return "MemoryDevice"; } + virtual StringView class_name() const override { return "MemoryDevice"sv; } virtual bool can_read(const OpenFileDescription&, size_t) const override { return true; } virtual bool can_write(const OpenFileDescription&, size_t) const override { return false; } virtual bool is_seekable() const override { return true; } diff --git a/Kernel/Devices/NullDevice.h b/Kernel/Devices/NullDevice.h index 7078bac39d..bc638ab4a3 100644 --- a/Kernel/Devices/NullDevice.h +++ b/Kernel/Devices/NullDevice.h @@ -26,7 +26,7 @@ private: virtual KResultOr write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const OpenFileDescription&, size_t) const override { return true; } virtual bool can_read(const OpenFileDescription&, size_t) const override; - virtual StringView class_name() const override { return "NullDevice"; } + virtual StringView class_name() const override { return "NullDevice"sv; } virtual bool is_seekable() const override { return true; } }; diff --git a/Kernel/Devices/RandomDevice.h b/Kernel/Devices/RandomDevice.h index 06337479c9..bdb804826b 100644 --- a/Kernel/Devices/RandomDevice.h +++ b/Kernel/Devices/RandomDevice.h @@ -26,7 +26,7 @@ private: virtual KResultOr write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual bool can_write(const OpenFileDescription&, size_t) const override { return true; } - virtual StringView class_name() const override { return "RandomDevice"; } + virtual StringView class_name() const override { return "RandomDevice"sv; } }; } diff --git a/Kernel/Devices/SB16.h b/Kernel/Devices/SB16.h index 443878eaae..54746d9e1a 100644 --- a/Kernel/Devices/SB16.h +++ b/Kernel/Devices/SB16.h @@ -42,7 +42,7 @@ private: virtual bool handle_irq(const RegisterState&) override; // ^CharacterDevice - virtual StringView class_name() const override { return "SB16"; } + virtual StringView class_name() const override { return "SB16"sv; } void initialize(); void wait_for_irq(); diff --git a/Kernel/Devices/SerialDevice.h b/Kernel/Devices/SerialDevice.h index bc2680a3ec..9768f4c96c 100644 --- a/Kernel/Devices/SerialDevice.h +++ b/Kernel/Devices/SerialDevice.h @@ -110,7 +110,7 @@ private: friend class PCISerialDevice; // ^CharacterDevice - virtual StringView class_name() const override { return "SerialDevice"; } + virtual StringView class_name() const override { return "SerialDevice"sv; } void initialize(); void set_interrupts(bool interrupt_enable); diff --git a/Kernel/Devices/ZeroDevice.h b/Kernel/Devices/ZeroDevice.h index 63d02f1500..33161b326f 100644 --- a/Kernel/Devices/ZeroDevice.h +++ b/Kernel/Devices/ZeroDevice.h @@ -26,7 +26,7 @@ private: virtual KResultOr write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual bool can_write(const OpenFileDescription&, size_t) const override { return true; } - virtual StringView class_name() const override { return "ZeroDevice"; } + virtual StringView class_name() const override { return "ZeroDevice"sv; } }; } diff --git a/Kernel/FileSystem/AnonymousFile.h b/Kernel/FileSystem/AnonymousFile.h index 5909763339..af91c36d21 100644 --- a/Kernel/FileSystem/AnonymousFile.h +++ b/Kernel/FileSystem/AnonymousFile.h @@ -23,7 +23,7 @@ public: virtual KResultOr mmap(Process&, OpenFileDescription&, Memory::VirtualRange const&, u64 offset, int prot, bool shared) override; private: - virtual StringView class_name() const override { return "AnonymousFile"; } + virtual StringView class_name() const override { return "AnonymousFile"sv; } virtual String absolute_path(const OpenFileDescription&) const override { return ":anonymous-file:"; } virtual bool can_read(const OpenFileDescription&, size_t) const override { return false; } virtual bool can_write(const OpenFileDescription&, size_t) const override { return false; } diff --git a/Kernel/FileSystem/FIFO.h b/Kernel/FileSystem/FIFO.h index 66b152a818..ab3326dd59 100644 --- a/Kernel/FileSystem/FIFO.h +++ b/Kernel/FileSystem/FIFO.h @@ -46,7 +46,7 @@ private: virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual bool can_write(const OpenFileDescription&, size_t) const override; virtual String absolute_path(const OpenFileDescription&) const override; - virtual StringView class_name() const override { return "FIFO"; } + virtual StringView class_name() const override { return "FIFO"sv; } virtual bool is_fifo() const override { return true; } explicit FIFO(UserID, NonnullOwnPtr buffer); diff --git a/Kernel/FileSystem/ISO9660FileSystem.h b/Kernel/FileSystem/ISO9660FileSystem.h index f3d84573b0..f0bb51832d 100644 --- a/Kernel/FileSystem/ISO9660FileSystem.h +++ b/Kernel/FileSystem/ISO9660FileSystem.h @@ -309,7 +309,7 @@ public: virtual ~ISO9660FS() override; virtual KResult initialize() override; - virtual StringView class_name() const override { return "ISO9660FS"; } + virtual StringView class_name() const override { return "ISO9660FS"sv; } virtual Inode& root_inode() override; virtual unsigned total_block_count() const override; diff --git a/Kernel/FileSystem/InodeFile.h b/Kernel/FileSystem/InodeFile.h index 88588b28e5..a51e90f1d6 100644 --- a/Kernel/FileSystem/InodeFile.h +++ b/Kernel/FileSystem/InodeFile.h @@ -43,7 +43,7 @@ public: virtual KResult chown(OpenFileDescription&, UserID, GroupID) override; virtual KResult chmod(OpenFileDescription&, mode_t) override; - virtual StringView class_name() const override { return "InodeFile"; } + virtual StringView class_name() const override { return "InodeFile"sv; } virtual bool is_seekable() const override { return true; } virtual bool is_inode() const override { return true; } diff --git a/Kernel/FileSystem/InodeWatcher.h b/Kernel/FileSystem/InodeWatcher.h index 041e3ece77..383506bc91 100644 --- a/Kernel/FileSystem/InodeWatcher.h +++ b/Kernel/FileSystem/InodeWatcher.h @@ -51,7 +51,7 @@ public: virtual KResult close() override; virtual String absolute_path(const OpenFileDescription&) const override; - virtual StringView class_name() const override { return "InodeWatcher"; }; + virtual StringView class_name() const override { return "InodeWatcher"sv; }; virtual bool is_inode_watcher() const override { return true; } void notify_inode_event(Badge, InodeIdentifier, InodeWatcherEvent::Type, String const& name = {}); diff --git a/Kernel/Graphics/FramebufferDevice.h b/Kernel/Graphics/FramebufferDevice.h index 531ea005fb..eb631d32e0 100644 --- a/Kernel/Graphics/FramebufferDevice.h +++ b/Kernel/Graphics/FramebufferDevice.h @@ -38,7 +38,7 @@ private: FramebufferDevice(const GraphicsDevice&, size_t, PhysicalAddress, size_t, size_t, size_t); // ^File - virtual StringView class_name() const override { return "FramebufferDevice"; } + virtual StringView class_name() const override { return "FramebufferDevice"sv; } virtual bool can_read(const OpenFileDescription&, size_t) const override final { return true; } virtual bool can_write(const OpenFileDescription&, size_t) const override final { return true; } diff --git a/Kernel/Graphics/VirtIOGPU/FrameBufferDevice.h b/Kernel/Graphics/VirtIOGPU/FrameBufferDevice.h index a47f601250..d686658ae7 100644 --- a/Kernel/Graphics/VirtIOGPU/FrameBufferDevice.h +++ b/Kernel/Graphics/VirtIOGPU/FrameBufferDevice.h @@ -51,7 +51,7 @@ public: u8* framebuffer_data(); private: - virtual StringView class_name() const override { return "VirtIOFrameBuffer"; } + virtual StringView class_name() const override { return "VirtIOFrameBuffer"sv; } Protocol::DisplayInfoResponse::Display const& display_info() const; Protocol::DisplayInfoResponse::Display& display_info(); diff --git a/Kernel/Graphics/VirtIOGPU/GPU.h b/Kernel/Graphics/VirtIOGPU/GPU.h index 7405aa9326..94d5da7ae8 100644 --- a/Kernel/Graphics/VirtIOGPU/GPU.h +++ b/Kernel/Graphics/VirtIOGPU/GPU.h @@ -79,7 +79,7 @@ public: void flush_dirty_rectangle(ScanoutID, Protocol::Rect const& dirty_rect, ResourceID); private: - virtual StringView class_name() const override { return "VirtIOGPU"; } + virtual StringView class_name() const override { return "VirtIOGPU"sv; } struct Scanout { RefPtr framebuffer; diff --git a/Kernel/Net/IPv4Socket.h b/Kernel/Net/IPv4Socket.h index 97b8e65e23..cbea9aad24 100644 --- a/Kernel/Net/IPv4Socket.h +++ b/Kernel/Net/IPv4Socket.h @@ -73,7 +73,7 @@ public: protected: IPv4Socket(int type, int protocol, NonnullOwnPtr receive_buffer, OwnPtr optional_scratch_buffer); - virtual StringView class_name() const override { return "IPv4Socket"; } + virtual StringView class_name() const override { return "IPv4Socket"sv; } PortAllocationResult allocate_local_port_if_needed(); diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h index 00e8a4b4ff..49279ee6e8 100644 --- a/Kernel/Net/LocalSocket.h +++ b/Kernel/Net/LocalSocket.h @@ -53,7 +53,7 @@ public: private: explicit LocalSocket(int type, NonnullOwnPtr client_buffer, NonnullOwnPtr server_buffer); - virtual StringView class_name() const override { return "LocalSocket"; } + virtual StringView class_name() const override { return "LocalSocket"sv; } virtual bool is_local() const override { return true; } bool has_attached_peer(const OpenFileDescription&) const; DoubleBuffer* receive_buffer_for(OpenFileDescription&); diff --git a/Kernel/Net/LoopbackAdapter.h b/Kernel/Net/LoopbackAdapter.h index 62d6770f93..b4352fc3f9 100644 --- a/Kernel/Net/LoopbackAdapter.h +++ b/Kernel/Net/LoopbackAdapter.h @@ -21,7 +21,7 @@ public: virtual ~LoopbackAdapter() override; virtual void send_raw(ReadonlyBytes) override; - virtual StringView class_name() const override { return "LoopbackAdapter"; } + virtual StringView class_name() const override { return "LoopbackAdapter"sv; } virtual bool link_up() override { return true; } virtual bool link_full_duplex() override { return true; } virtual int link_speed() override { return 1000; } diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index 24556ade88..ef67cd6bd8 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -123,7 +123,7 @@ protected: size_t backlog() const { return m_backlog; } void set_backlog(size_t backlog) { m_backlog = backlog; } - virtual StringView class_name() const override { return "Socket"; } + virtual StringView class_name() const override { return "Socket"sv; } virtual void shut_down_for_reading() { } virtual void shut_down_for_writing() { } diff --git a/Kernel/Net/TCPSocket.h b/Kernel/Net/TCPSocket.h index b5c812aeea..2dcc877464 100644 --- a/Kernel/Net/TCPSocket.h +++ b/Kernel/Net/TCPSocket.h @@ -166,7 +166,7 @@ protected: private: explicit TCPSocket(int protocol, NonnullOwnPtr receive_buffer, NonnullOwnPtr scratch_buffer); - virtual StringView class_name() const override { return "TCPSocket"; } + virtual StringView class_name() const override { return "TCPSocket"sv; } virtual void shut_down_for_writing() override; diff --git a/Kernel/Net/UDPSocket.h b/Kernel/Net/UDPSocket.h index 07a93c2777..c387ac536b 100644 --- a/Kernel/Net/UDPSocket.h +++ b/Kernel/Net/UDPSocket.h @@ -22,7 +22,7 @@ public: private: explicit UDPSocket(int protocol, NonnullOwnPtr receive_buffer); - virtual StringView class_name() const override { return "UDPSocket"; } + virtual StringView class_name() const override { return "UDPSocket"sv; } static MutexProtected>& sockets_by_port(); virtual KResultOr protocol_receive(ReadonlyBytes raw_ipv4_packet, UserOrKernelBuffer& buffer, size_t buffer_size, int flags) override; diff --git a/Kernel/Storage/PATADiskDevice.cpp b/Kernel/Storage/PATADiskDevice.cpp index 11a594f1bb..5bed61ac03 100644 --- a/Kernel/Storage/PATADiskDevice.cpp +++ b/Kernel/Storage/PATADiskDevice.cpp @@ -37,7 +37,7 @@ UNMAP_AFTER_INIT PATADiskDevice::~PATADiskDevice() StringView PATADiskDevice::class_name() const { - return "PATADiskDevice"; + return "PATADiskDevice"sv; } void PATADiskDevice::start_request(AsyncBlockDeviceRequest& request) diff --git a/Kernel/Storage/Partition/DiskPartition.cpp b/Kernel/Storage/Partition/DiskPartition.cpp index d1941a16de..265d5eb76a 100644 --- a/Kernel/Storage/Partition/DiskPartition.cpp +++ b/Kernel/Storage/Partition/DiskPartition.cpp @@ -77,7 +77,7 @@ bool DiskPartition::can_write(const OpenFileDescription& fd, size_t offset) cons StringView DiskPartition::class_name() const { - return "DiskPartition"; + return "DiskPartition"sv; } } diff --git a/Kernel/Storage/RamdiskDevice.cpp b/Kernel/Storage/RamdiskDevice.cpp index e08ecdbf87..baa859181e 100644 --- a/Kernel/Storage/RamdiskDevice.cpp +++ b/Kernel/Storage/RamdiskDevice.cpp @@ -34,7 +34,7 @@ RamdiskDevice::~RamdiskDevice() StringView RamdiskDevice::class_name() const { - return "RamdiskDevice"; + return "RamdiskDevice"sv; } void RamdiskDevice::start_request(AsyncBlockDeviceRequest& request) diff --git a/Kernel/Storage/SATADiskDevice.cpp b/Kernel/Storage/SATADiskDevice.cpp index 7563f0cb31..d90f86533c 100644 --- a/Kernel/Storage/SATADiskDevice.cpp +++ b/Kernel/Storage/SATADiskDevice.cpp @@ -33,7 +33,7 @@ SATADiskDevice::~SATADiskDevice() StringView SATADiskDevice::class_name() const { - return "SATADiskDevice"; + return "SATADiskDevice"sv; } void SATADiskDevice::start_request(AsyncBlockDeviceRequest& request) diff --git a/Kernel/Storage/StorageDevice.cpp b/Kernel/Storage/StorageDevice.cpp index 1786d81ca7..04e3221a69 100644 --- a/Kernel/Storage/StorageDevice.cpp +++ b/Kernel/Storage/StorageDevice.cpp @@ -29,7 +29,7 @@ StorageDevice::StorageDevice(const StorageController& controller, int major, int StringView StorageDevice::class_name() const { - return "StorageDevice"; + return "StorageDevice"sv; } NonnullRefPtr StorageDevice::controller() const diff --git a/Kernel/TTY/MasterPTY.h b/Kernel/TTY/MasterPTY.h index 20d87af7ba..7f6c5732c7 100644 --- a/Kernel/TTY/MasterPTY.h +++ b/Kernel/TTY/MasterPTY.h @@ -38,7 +38,7 @@ private: virtual KResult close() override; virtual bool is_master_pty() const override { return true; } virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace arg) override; - virtual StringView class_name() const override { return "MasterPTY"; } + virtual StringView class_name() const override { return "MasterPTY"sv; } RefPtr m_slave; unsigned m_index; diff --git a/Kernel/TTY/PTYMultiplexer.h b/Kernel/TTY/PTYMultiplexer.h index 8db52a121b..025d32f7f8 100644 --- a/Kernel/TTY/PTYMultiplexer.h +++ b/Kernel/TTY/PTYMultiplexer.h @@ -34,7 +34,7 @@ public: private: // ^CharacterDevice - virtual StringView class_name() const override { return "PTYMultiplexer"; } + virtual StringView class_name() const override { return "PTYMultiplexer"sv; } static constexpr size_t max_pty_pairs = 64; MutexProtected> m_freelist; diff --git a/Kernel/TTY/SlavePTY.h b/Kernel/TTY/SlavePTY.h index 3d10eaed76..e10795318c 100644 --- a/Kernel/TTY/SlavePTY.h +++ b/Kernel/TTY/SlavePTY.h @@ -35,7 +35,7 @@ private: virtual bool can_read(const OpenFileDescription&, size_t) const override; virtual KResultOr read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_write(const OpenFileDescription&, size_t) const override; - virtual StringView class_name() const override { return "SlavePTY"; } + virtual StringView class_name() const override { return "SlavePTY"sv; } virtual KResult close() override; friend class MasterPTY; diff --git a/Kernel/TTY/VirtualConsole.h b/Kernel/TTY/VirtualConsole.h index 512c51c536..b467b517d5 100644 --- a/Kernel/TTY/VirtualConsole.h +++ b/Kernel/TTY/VirtualConsole.h @@ -106,7 +106,7 @@ private: virtual void set_cursor_style(VT::CursorStyle) override; // ^CharacterDevice - virtual StringView class_name() const override { return "VirtualConsole"; } + virtual StringView class_name() const override { return "VirtualConsole"sv; } void set_active(bool); void flush_dirty_lines();