terminal/src/inc/ITerminalOutputConnection.hpp

33 lines
1 KiB
C++
Raw Normal View History

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
/*
Module Name:
- ITerminalOutputConnection.hpp
Abstract:
- Provides an abstraction for writing to the output pipe connected to the TTY.
In conpty mode, this is implemented by the VtRenderer, such that other
parts of the codebase (the state machine) can write VT sequences directly
to the terminal controlling us.
*/
#pragma once
namespace Microsoft::Console
{
class ITerminalOutputConnection
{
public:
#pragma warning(push)
#pragma warning(disable : 26432) // suppress rule of 5 violation on interface because tampering with this is fraught with peril
virtual ~ITerminalOutputConnection() = 0;
[[nodiscard]] virtual HRESULT WriteTerminalUtf8(const std::string_view str) = 0;
[[nodiscard]] virtual HRESULT WriteTerminalW(const std::wstring_view wstr) = 0;
};
inline Microsoft::Console::ITerminalOutputConnection::~ITerminalOutputConnection() {}
#pragma warning(pop)
}