fold


Description:

public IteratorResult fold (IteratorFoldFunction func, ref Value ret)

Folds func over the elements of iter.

That is to say, func will be called as func (object, ret, user_data) for each object in this. The normal use of this procedure is to accumulate the results of operating on the objects in ret .

This procedure can be used (and is used internally) to implement the @foreach and find_custom operations.

The fold will proceed as long as func returns true. When the iterator has no more arguments, gst_iterator_done will be returned. If func returns false, the fold will stop, and gst_iterator_ok will be returned. Errors or resyncs will cause fold to return gst_iterator_error or gst_iterator_resync as appropriate.

The iterator will not be freed.

Parameters:

this

The Iterator to fold over

func

the fold function

ret

the seed value passed to the fold function

user_data

user data passed to the fold function

Returns:

A IteratorResult, as described above.

MT safe.