++list->element_count;
}
+int plist_has_value(plist_t *list, void *value) {
+ plist_element_t *iter;
+
+ for (iter = plist_first(list); iter; iter = plist_element_get_next(iter)) {
+ if (plist_element_get_value(iter) == value)
+ return 1;
+ }
+
+ return 0;
+}
+
+plist_element_t *plist_find_value(plist_t *list, void *value) {
+ plist_element_t *iter;
+
+ for (iter = plist_first(list); iter; iter = plist_element_get_next(iter)) {
+ if (plist_element_get_value(iter) == value)
+ return iter;
+ }
+
+ return NULL;
+}
+
void plist_erase(plist_t *list, plist_element_t *element) {
plist_element_t *next_element = element->next;
plist_element_t *prev_element = element->prev;
*/
void plist_insert_after(plist_t *list, plist_element_t *element, void *value);
+/**
+ * Checks if list has an element with the given data pointer.
+ * @param list the list to check
+ * @param value the data pointer to look for
+ * @return 1 if element with data pointer found, 0 otherwise
+ */
+int plist_has_value(plist_t *list, void *value);
+
+/**
+ * Tries to find list element associated to the given data pointer.
+ * @param list the list to check
+ * @param value the data pointer to look for
+ * @return The first list element associated to data pointer if found, NULL otherwise
+ */
+plist_element_t *plist_find_value(plist_t *list, void *value);
+
/**
* Erases the specified element from the pointer list.
* @param list the pointer list from which the element should be erased.