#pragma once #include "concurrentmap.hpp" #include "emotemanager.hpp" #include "logging/loggingchannel.hpp" #include "messages/lazyloadedimage.hpp" #include "messages/limitedqueue.hpp" #include #include #include #include #include #include namespace chatterino { namespace messages { class Message; } class IrcManager; class Channel { public: explicit Channel(); boost::signals2::signal messageRemovedFromStart; boost::signals2::signal messageAppended; virtual bool isEmpty() const; messages::LimitedQueueSnapshot getMessageSnapshot(); // methods void addMessage(messages::SharedMessage message); QString name; QStringList modList; virtual bool canSendMessage() const; virtual void sendMessage(const QString &message); private: // variables messages::LimitedQueue messages; // std::shared_ptr loggingChannel; }; } // namespace chatterino