#include "MessageThread.hpp" #include "messages/Message.hpp" #include "util/DebugCount.hpp" #include namespace chatterino { MessageThread::MessageThread(std::shared_ptr rootMessage) : rootMessageId_(rootMessage->id) , rootMessage_(std::move(rootMessage)) { DebugCount::increase("message threads"); } MessageThread::~MessageThread() { DebugCount::decrease("message threads"); } void MessageThread::addToThread(const std::shared_ptr &message) { this->replies_.emplace_back(message); } void MessageThread::addToThread(const std::weak_ptr &message) { this->replies_.push_back(message); } size_t MessageThread::liveCount() const { size_t count = 0; for (auto reply : this->replies_) { if (!reply.expired()) { ++count; } } return count; } size_t MessageThread::liveCount( const std::shared_ptr &exclude) const { size_t count = 0; for (auto reply : this->replies_) { if (!reply.expired() && reply.lock() != exclude) { ++count; } } return count; } bool MessageThread::participated() const { return this->participated_; } void MessageThread::markParticipated() { this->participated_ = true; } } // namespace chatterino