libtase2  2.4.0
TASE.2/ICCP Protocol Source Code Library for C/C++
Loading...
Searching...
No Matches
linked_list.h
Go to the documentation of this file.
1/*
2 * linked_list.h
3 *
4 * This file is part of libmms/libtase2.
5 *
6 * Copyright 2013-2019 MZ Automation GmbH
7 *
8 * All rights reserved.
9 */
10
11#ifndef LINKED_LIST_H_
12#define LINKED_LIST_H_
13
14#ifdef _WIN32
15 #ifdef EXPORT_FUNCTIONS_FOR_DLL
16 #define PUBLIC_API __declspec(dllexport)
17 #else
18 #define PUBLIC_API
19 #endif
20#else
21 #define PUBLIC_API
22#endif
23
24#include <stdbool.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
42 void* data;
44};
45
49typedef struct sLinkedList* LinkedList;
50
56PUBLIC_API LinkedList
58
68PUBLIC_API void
69LinkedList_destroy(LinkedList self);
70
71
72typedef void (*LinkedListValueDeleteFunction) (void*);
73
85PUBLIC_API void
86LinkedList_destroyDeep(LinkedList self, LinkedListValueDeleteFunction valueDeleteFunction);
87
96PUBLIC_API void
97LinkedList_destroyStatic(LinkedList self);
98
108PUBLIC_API void
109LinkedList_add(LinkedList self, void* data);
110
117PUBLIC_API LinkedList
118LinkedList_append(LinkedList list, void* data);
119
131PUBLIC_API bool
132LinkedList_addEx(LinkedList list, void* data);
133
142PUBLIC_API bool
143LinkedList_contains(LinkedList self, void* data);
144
153PUBLIC_API bool
154LinkedList_remove(LinkedList self, void* data);
155
162PUBLIC_API LinkedList
163LinkedList_get(LinkedList self, int index);
164
170PUBLIC_API LinkedList
171LinkedList_getNext(LinkedList self);
172
178PUBLIC_API LinkedList
180
186PUBLIC_API LinkedList
187LinkedList_insertAfter(LinkedList listElement, void* data);
188
196PUBLIC_API int
197LinkedList_size(LinkedList self);
198
199PUBLIC_API void*
200LinkedList_getData(LinkedList self);
201
202PUBLIC_API void
204
209#ifdef __cplusplus
210}
211#endif
212
213#endif /* LINKED_LIST_H_ */
PUBLIC_API void LinkedList_destroy(LinkedList self)
Delete a LinkedList object.
PUBLIC_API LinkedList LinkedList_get(LinkedList self, int index)
Get the list element specified by index (starting with 0).
PUBLIC_API bool LinkedList_addEx(LinkedList list, void *data)
Add a new element to the list and return success status.
void(* LinkedListValueDeleteFunction)(void *)
Definition linked_list.h:72
PUBLIC_API LinkedList LinkedList_getLastElement(LinkedList self)
Get the last element in the list.
PUBLIC_API void LinkedList_destroyStatic(LinkedList self)
Delete a LinkedList object without freeing the element data.
PUBLIC_API LinkedList LinkedList_create(void)
Create a new LinkedList object.
PUBLIC_API void LinkedList_printStringList(LinkedList self)
PUBLIC_API void * LinkedList_getData(LinkedList self)
PUBLIC_API bool LinkedList_contains(LinkedList self, void *data)
Check if the specified data is contained in the list.
PUBLIC_API void LinkedList_destroyDeep(LinkedList self, LinkedListValueDeleteFunction valueDeleteFunction)
Delete a LinkedList object.
PUBLIC_API bool LinkedList_remove(LinkedList self, void *data)
Removed the specified element from the list.
PUBLIC_API void LinkedList_add(LinkedList self, void *data)
Add a new element to the list.
PUBLIC_API LinkedList LinkedList_getNext(LinkedList self)
Get the next element in the list (iterator).
PUBLIC_API int LinkedList_size(LinkedList self)
Get the size of the list.
PUBLIC_API LinkedList LinkedList_append(LinkedList list, void *data)
Append new element to the list and return new list element.
PUBLIC_API LinkedList LinkedList_insertAfter(LinkedList listElement, void *data)
Insert a new element int the list.
#define PUBLIC_API
Definition linked_list.h:21
Reference to a linked list or to a linked list element.
Definition linked_list.h:41
void * data
Definition linked_list.h:42
struct sLinkedList * next
Definition linked_list.h:43