Added linked_list_t.has_more which checks if any elements follow an enumerator's current position.
This commit is contained in:
@@ -164,6 +164,16 @@ METHOD(linked_list_t, reset_enumerator, void,
|
|||||||
enumerator->finished = FALSE;
|
enumerator->finished = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
METHOD(linked_list_t, has_more, bool,
|
||||||
|
private_linked_list_t *this, private_enumerator_t *enumerator)
|
||||||
|
{
|
||||||
|
if (enumerator->current)
|
||||||
|
{
|
||||||
|
return enumerator->current->next != NULL;
|
||||||
|
}
|
||||||
|
return !enumerator->finished && this->first != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(linked_list_t, get_count, int,
|
METHOD(linked_list_t, get_count, int,
|
||||||
private_linked_list_t *this)
|
private_linked_list_t *this)
|
||||||
{
|
{
|
||||||
@@ -537,6 +547,7 @@ linked_list_t *linked_list_create()
|
|||||||
.get_count = _get_count,
|
.get_count = _get_count,
|
||||||
.create_enumerator = _create_enumerator,
|
.create_enumerator = _create_enumerator,
|
||||||
.reset_enumerator = (void*)_reset_enumerator,
|
.reset_enumerator = (void*)_reset_enumerator,
|
||||||
|
.has_more = (void*)_has_more,
|
||||||
.get_first = _get_first,
|
.get_first = _get_first,
|
||||||
.get_last = _get_last,
|
.get_last = _get_last,
|
||||||
.find_first = (void*)_find_first,
|
.find_first = (void*)_find_first,
|
||||||
|
|||||||
@@ -77,6 +77,14 @@ struct linked_list_t {
|
|||||||
*/
|
*/
|
||||||
void (*reset_enumerator)(linked_list_t *this, enumerator_t *enumerator);
|
void (*reset_enumerator)(linked_list_t *this, enumerator_t *enumerator);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if there are more elements following after the enumerator's
|
||||||
|
* current position.
|
||||||
|
*
|
||||||
|
* @param enumerator enumerator to check
|
||||||
|
*/
|
||||||
|
bool (*has_more)(linked_list_t *this, enumerator_t *enumerator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inserts a new item at the beginning of the list.
|
* Inserts a new item at the beginning of the list.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user