31template <
size_t requiredFlagBitsPerItem>
56 template <
typename Callback>
59 for (
size_t flagIndex = 0; flagIndex <
flags.size(); ++flagIndex)
61 const auto prevFlags =
flags[flagIndex].exchange (0, std::memory_order_acq_rel);
118 return (
a /
b) + ((
a %
b) != 0);
125 std::vector<std::atomic<FlagType>>
flags;
128template <
size_t requiredFlagBitsPerItem>
146 values[index].store (
value, std::memory_order_relaxed);
157 float get (
size_t index)
const noexcept
160 return values[index].load (std::memory_order_relaxed);
166 template <
typename Callback>
171 callback (groupIndex,
values[groupIndex].load (std::memory_order_relaxed), bits);
#define noexcept
Definition DistrhoDefines.h:72
uint8_t a
Definition Spc_Cpu.h:141
Definition juce_FlagCache.h:33
std::vector< std::atomic< FlagType > > flags
Definition juce_FlagCache.h:125
static constexpr size_t bitsPerFlagGroup
Definition juce_FlagCache.h:121
static constexpr FlagType groupMask
Definition juce_FlagCache.h:123
static constexpr size_t findNextPowerOfTwoImpl(size_t n, size_t shift)
Definition juce_FlagCache.h:106
static constexpr FlagType moveToGroupPosition(FlagType ungrouped, size_t groupIndex)
Definition juce_FlagCache.h:88
void set(size_t index, FlagType bits)
Definition juce_FlagCache.h:45
uint32_t FlagType
Definition juce_FlagCache.h:34
static constexpr size_t groupsPerWord
Definition juce_FlagCache.h:122
FlagCache(size_t items)
Definition juce_FlagCache.h:39
void clear()
Definition juce_FlagCache.h:73
static constexpr size_t findNextPowerOfTwo(size_t value)
Definition juce_FlagCache.h:111
void ifSet(Callback &&callback)
Definition juce_FlagCache.h:57
static constexpr FlagType moveFromGroupPosition(FlagType grouped, size_t groupIndex)
Definition juce_FlagCache.h:101
static constexpr size_t divCeil(size_t a, size_t b)
Definition juce_FlagCache.h:116
void ifSet(Callback &&callback)
Definition juce_FlagCache.h:167
void setValue(size_t index, float value)
Definition juce_FlagCache.h:143
void setValueAndBits(size_t index, float value, uint32_t bits)
Definition juce_FlagCache.h:151
size_t size() const noexcept
Definition juce_FlagCache.h:141
void setBits(size_t index, uint32_t bits)
Definition juce_FlagCache.h:149
std::vector< std::atomic< float > > values
Definition juce_FlagCache.h:176
float get(size_t index) const noexcept
Definition juce_FlagCache.h:157
FlaggedFloatCache()=default
FlaggedFloatCache(size_t sizeIn)
Definition juce_FlagCache.h:134
FlagCache< requiredFlagBitsPerItem > flags
Definition juce_FlagCache.h:177
static PuglViewHint int value
Definition pugl.h:1708
unsigned int uint32_t
Definition mid.cpp:100
Definition carla_juce.cpp:31
@ group
Definition juce_AccessibilityRole.h:61
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
int n
Definition crypt.c:458
#define const
Definition zconf.h:137