mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-06-10 16:55:58 +00:00
64 lines
1.2 KiB
C++
64 lines
1.2 KiB
C++
#ifndef STA_CAN_ITER_HPP
|
|
#define STA_CAN_ITER_HPP
|
|
|
|
#include <cstdint>
|
|
|
|
|
|
namespace sta
|
|
{
|
|
class CanPendingRxFifos
|
|
{
|
|
public:
|
|
using value_type = uint8_t;
|
|
using reference = value_type &;
|
|
using const_reference = const value_type &;
|
|
using size_type = uint8_t;
|
|
|
|
class const_iterator
|
|
{
|
|
public:
|
|
using value_type = CanPendingRxFifos::value_type;
|
|
using reference = const_reference;
|
|
using pointer = const value_type *;
|
|
|
|
public:
|
|
const_iterator(const const_iterator & iter);
|
|
|
|
const_iterator & operator=(const const_iterator & iter);
|
|
|
|
bool operator==(const const_iterator & iter) const;
|
|
bool operator!=(const const_iterator & iter) const;
|
|
|
|
const_iterator & operator++();
|
|
const_iterator operator++(int);
|
|
|
|
reference operator*() const;
|
|
|
|
private:
|
|
const_iterator(uint32_t rxFlags, uint8_t idx, uint8_t endIdx);
|
|
|
|
bool isRxPending() const;
|
|
|
|
friend class CanPendingRxFifos;
|
|
|
|
private:
|
|
uint32_t rxFlags_;
|
|
uint8_t idx_;
|
|
uint8_t endIdx_;
|
|
};
|
|
|
|
public:
|
|
CanPendingRxFifos(uint32_t rxFlags, uint8_t numFifos);
|
|
|
|
const_iterator begin() const;
|
|
const_iterator end() const;
|
|
|
|
private:
|
|
uint32_t rxFlags_;
|
|
uint8_t numFifos_;
|
|
};
|
|
} // namespace sta
|
|
|
|
|
|
#endif // STA_CAN_ITER_HPP
|