beegfs/client_module/source/common/net/sock/NicAddressStatsListIter.h
2025-08-10 01:34:16 +02:00

57 lines
1.8 KiB
C

#ifndef NICADDRESSSTATSLISTITER_H_
#define NICADDRESSSTATSLISTITER_H_
#include <common/toolkit/list/PointerListIter.h>
#include "NicAddressStatsList.h"
struct NicAddressStatsListIter;
typedef struct NicAddressStatsListIter NicAddressStatsListIter;
static inline void NicAddressStatsListIter_init(NicAddressStatsListIter* this, NicAddressStatsList* list);
static inline void NicAddressStatsListIter_next(NicAddressStatsListIter* this);
static inline NicAddressStats* NicAddressStatsListIter_value(NicAddressStatsListIter* this);
static inline bool NicAddressStatsListIter_end(NicAddressStatsListIter* this);
static inline NicAddressStatsListIter NicAddressStatsListIter_remove(NicAddressStatsListIter* this);
struct NicAddressStatsListIter
{
PointerListIter pointerListIter;
};
void NicAddressStatsListIter_init(NicAddressStatsListIter* this, NicAddressStatsList* list)
{
PointerListIter_init( (PointerListIter*)this, (PointerList*)list);
}
void NicAddressStatsListIter_next(NicAddressStatsListIter* this)
{
PointerListIter_next( (PointerListIter*)this);
}
NicAddressStats* NicAddressStatsListIter_value(NicAddressStatsListIter* this)
{
return (struct NicAddressStats*)PointerListIter_value( (PointerListIter*)this);
}
bool NicAddressStatsListIter_end(NicAddressStatsListIter* this)
{
return PointerListIter_end( (PointerListIter*)this);
}
/**
* note: the current iterator becomes invalid after the call (use the returned iterator)
* @return the new iterator that points to the element just behind the erased one
*/
NicAddressStatsListIter NicAddressStatsListIter_remove(NicAddressStatsListIter* this)
{
NicAddressStatsListIter newIter = *this;
NicAddressStatsListIter_next(&newIter); // the new iter that will be returned
PointerListIter_remove( (PointerListIter*)this);
return newIter;
}
#endif /*NICADDRESSSTATSLISTITER_H_*/