27#ifndef _UCOMMON_COUNTER_H_
28#define _UCOMMON_COUNTER_H_
30#ifndef _UCOMMON_CONFIG_H_
46 unsigned value, cycle;
86 inline operator unsigned() {
111 SeqCounter(
void *start,
size_t size,
unsigned count);
115 void *get(
unsigned idx);
123 counter::operator=(inc_offset);
143 inline bool operator*() {
147 inline void operator=(
bool v) {
151 inline operator bool() {
166 inline T *
get(
unsigned idx) {
167 return static_cast<T *
>(SeqCounter::get(idx));
184 return static_cast<T *
>(SeqCounter::get());
192 return reference_cast<T&>(SeqCounter::get());
199 inline operator T&() {
200 return reference_cast<T&>(SeqCounter::get());
209 return reference_cast<T&>(
get(offset));
Various miscellaneous platform specific headers and defines.
Common namespace for all ucommon objects.
toggle toggle_t
A convenience typecast for auto-toggled bools.
counter counter_t
A convenience typecast for integer counters.
Automatic integer counting class.
unsigned operator*()
Reference next counter value through pointer operation.
void operator=(unsigned value)
Assign the value of the counter.
counter(unsigned limit)
Initialize integer counter for a range of values.
unsigned get(void)
Get the next counter value.
counter()
Initialize integer counter of unknown size.
unsigned range(void)
Get the range of values before recycling.
Automatically return a sequence of untyped objects.
void operator=(unsigned inc_offset)
Used to directly assign sequence position in template.
Automatically toggle a bool on each reference.
A template to return a sequence of objects of a specified type.
T & operator*()
Return next typed member of the sequence by pointer reference.
sequence(T *array, unsigned size)
Create a template auto-sequence from a list of typed pointers.
T * get(void)
Return next typed member of the sequence.
T & operator[](unsigned offset)
Return a specific typed member from the sequence list.