#pragma once #include #include class QByteArray; class QString; namespace chatterino { class Paths; } // namespace chatterino namespace chatterino::ipc { void initPaths(const Paths *paths); void sendMessage(const char *name, const QByteArray &data); class IpcQueuePrivate; class IpcQueue { public: ~IpcQueue(); static std::pair, QString> tryReplaceOrCreate( const char *name, size_t maxMessages, size_t maxMessageSize); // TODO: use std::expected /// Try to receive a message. /// In the case of an error, the buffer is empty. QByteArray receive(); private: IpcQueue(IpcQueuePrivate *priv); std::unique_ptr private_; friend class IpcQueuePrivate; }; } // namespace chatterino::ipc