#pragma once

#include <cstdint>

class FlagsIface {
public:

    virtual void set_flag(uint32_t mask) = 0;

    virtual uint32_t get_flag(uint32_t mask) = 0;

    virtual uint32_t get_flags() = 0;

    virtual void clear_flags(uint32_t mask) = 0;
    
    virtual uint32_t wait_flags(uint32_t mask) = 0;

    virtual ~FlagsIface() {}
};