Files
FeatherLog/include/featherlog/log_message_flag.hpp
T
2026-08-17 21:01:29 +08:00

33 lines
1.0 KiB
C++

#ifndef FEATHERLOG_LOG_MESSAGE_FLAG_HPP
#define FEATHERLOG_LOG_MESSAGE_FLAG_HPP
#include <array>
namespace flog
{
typedef uint32_t MessageFlag;
class MessageFlagManager
{
public:
MessageFlagManager() noexcept = default;
~MessageFlagManager() = default;
MessageFlagManager(const MessageFlagManager&) noexcept = default;
MessageFlagManager& operator=(const MessageFlagManager&) noexcept = default;
MessageFlagManager(MessageFlagManager&&) noexcept = default;
MessageFlagManager& operator=(MessageFlagManager&&) noexcept = default;
_NODISCARD bool isFull() const noexcept { return flagCount >= std::numeric_limits<MessageFlag>::digits; }
_NODISCARD bool pushable() const noexcept { return !isFull(); }
_NODISCARD bool isEmpty() const noexcept { return flagCount == 0; }
// _NODISCARD
private:
std::array<std::string, std::numeric_limits<MessageFlag>::digits> m_flagMap{};
size_t flagCount { 0 };
};
}
#endif