Ejemplo n.º 1
0
int
owlist_free_all
(
	OWList * list,
	void (* free_element) (void *)
)
{
	int return_code = 0 ;
	OWListIterator * iterator ;
	void * element ;

	iterator = owlist_iterator_new (list, OWLIST_WRITE) ;
	if (iterator != NULL)
	{
		while (owlist_iterator_next (iterator) == 0)
		{
			element = owlist_iterator_get (iterator) ;
			return_code |= owlist_iterator_remove (iterator) ;
			free_element (element) ;
			/* if free_element has a return code, it cannot be tested */
		}
		return_code |= owlist_iterator_free (iterator) ;
	}

	return_code |= owlist_free (list) ;

	return return_code ;
}
Ejemplo n.º 2
0
static OWSLSocket
transport_socket_get_next
(
	OWSLSocketType implementation,
	OWListIterator * list_iterator
)
{
	OWSLSocket found_socket = -1 ;
	OWSLSocket * socket ;
	while (owlist_iterator_next (list_iterator) == 0)
	{
		socket = owlist_iterator_get (list_iterator) ;
		if (owsl_type_get (* socket) == implementation)
		{
			found_socket = * socket ;
			break ;
		}
	}
	return found_socket ;
}