static void t_clib_for_each() { struct clib_array *pArray; struct clib_deque *pDeq; struct clib_set *pSet; struct clib_map *pMap; struct clib_slist *pSlist; struct clib_iterator *pArrayIterator; struct clib_iterator *pDequeIterator; struct clib_iterator *pSetIterator; struct clib_iterator *pMapIterator; struct clib_iterator *pSlistIterator; printf ( "Performing for_each for array\n"); pArray = create_c_array(); pArrayIterator = new_iterator_c_array ( pArray ); clib_for_each ( pArrayIterator, print_integers ); delete_c_array( pArray ); delete_iterator_c_array ( pArrayIterator ); printf ( "Performing for_each for deque\n"); pDeq = create_deque(); pDequeIterator = new_iterator_c_deque ( pDeq ); clib_for_each ( pDequeIterator, print_integers ); delete_c_deque( pDeq ); delete_iterator_c_deque ( pDequeIterator ); printf ( "Performing for_each for set\n"); pSet = create_set(); pSetIterator = new_iterator_c_set ( pSet ); clib_for_each ( pSetIterator, print_integers ); delete_c_set( pSet ); delete_iterator_c_set ( pSetIterator ); printf ( "Performing for_each for map\n"); pMap = create_map(); pMapIterator = new_iterator_c_map ( pMap ); clib_for_each ( pMapIterator, print_integers ); delete_c_map( pMap ); delete_iterator_c_map ( pMapIterator ); printf ( "Performing for_each for slist\n"); pSlist = create_slist(); pSlistIterator = new_iterator_c_slist ( pSlist ); clib_for_each ( pSlistIterator, print_integers ); delete_c_slist( pSlist ); delete_iterator_c_slist ( pSlistIterator ); }
static void print_using_iterator(struct clib_deque* myDeq) { struct clib_iterator *myItr; struct clib_object *pElement; printf ( "------------------------------------------------\n"); myItr = new_iterator_c_deque (myDeq); pElement = myItr->get_next(myItr); while ( pElement ) { void* value = myItr->get_value(pElement); printf ( "%d\n", *(int*)value); free ( value ); pElement = myItr->get_next(myItr); } delete_iterator_c_deque( myItr ); }
static void replace_values_using_iterators(struct clib_deque* myDeq) { struct clib_iterator *myItr; struct clib_object *pElement; myItr = new_iterator_c_deque (myDeq); pElement = myItr->get_next(myItr); while ( pElement ) { void* old_value = myItr->get_value(pElement); int new_value = *(int*)old_value; new_value = new_value * 2; myItr->replace_value( myItr, &new_value, sizeof(new_value)); free ( old_value ); pElement = myItr->get_next(myItr); } delete_iterator_c_deque( myItr ); }