VirtualBox

Changeset 28435 in vbox


Ignore:
Timestamp:
Apr 17, 2010 9:39:53 PM (15 years ago)
Author:
vboxsync
Message:

iprt/list.h: Added RTListForEach and RTListNodeIsDummy.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/list.h

    r26813 r28435  
    141141
    142142/**
     143 * Checks if a type converted node is actually the dummy element (@a pList).
     144 *
     145 * @retval  @c true if the node is the dummy element in the list.
     146 * @retval  @c false otherwise.
     147 *
     148 * @param   pList               The list.
     149 * @param   pNodeStruct         The node structure to check.  Typically
     150 *                              something obtained from RTListNodeGetNext() or
     151 *                              RTListNodeGetPrev().  This is NOT a PRTLISTNODE
     152 *                              but something that contains a RTLISTNODE member!
     153 * @param   Type                Structure the list node is a member of.
     154 * @param   Member              The list node member.
     155 */
     156#define RTListNodeIsDummy(pList, pNode, Type, Member) \
     157         ( (pNode) != RT_FROM_MEMBER((pList), Type, Member) )
     158
     159/**
    143160 * Checks if a list is empty.
    144161 *
     
    199216#define RTListNodeGetLast(pList, Type, Member) \
    200217    (!RTListIsEmpty(pList) ? RTListNodeGetPrev(pList, Type, Member) : NULL)
     218
     219/**
     220 * Enumerate the list in head to tail order.
     221 *
     222 * @param   pList               List to enumerate.
     223 * @param   pIterator           The iterator variable name.
     224 * @param   Type                Structure the list node is a member of.
     225 * @param   Member              The list node member name.
     226 */
     227#define RTListForEach(pList, pIterator, Type, Member) \
     228    for (pIterator = RTListNodeGetNext(pList, Type, Member); \
     229         !RTListNodeIsDummy(pList, pIterator, Type, Member); \
     230         pIterator = RT_FROM_MEMBER((pIterator)->Member.pNext, Type, Member) )
     231
    201232
    202233/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette