Files
FeatherLog/include/featherlog/log_message_flag.hpp
T
2026-08-18 13:55:04 +08:00

32 lines
1.0 KiB
C++

#pragma once
#include <array>
#include <limits>
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 bool contains(std::string_view name) const noexcept;
private:
std::array<std::string, std::numeric_limits<MessageFlag>::digits> m_flagMap{};
size_t flagCount { 0 };
};
}