OpenLcbCLib 1.0 Alpha
OpenSource C Library to create OpenLcb/Lcc Nodes
Loading...
Searching...
No Matches
threadsafe_stringlist.h
Go to the documentation of this file.
1
35#ifndef __THREADSAFE_STRINGLIST_
36#define __THREADSAFE_STRINGLIST_
37
38#include <stdio.h>
39#include <stdlib.h>
40#include <string.h>
41#include <pthread.h>
42
44
45#define MAX_STRINGS 100
46
47#ifdef __cplusplus
48extern "C"
49{
50#endif /* __cplusplus */
51
52 typedef struct
53 {
54 char *strings[MAX_STRINGS];
55 int count;
56 int head, tail;
57 pthread_mutex_t mutex;
58 } StringList;
59
60 // Initialize the string list
61 extern void ThreadSafeStringList_init(StringList *list);
62
63 // Add a string to the list
64 extern void ThreadSafeStringList_add(StringList *list, const char *string);
65
66 // Remove string from list
67 extern void ThreadSafeStringList_remove(StringList *list, const char *str);
68
69 // Add a string to the list
70 extern uint8_t ThreadSafeStringList_push(StringList *list, const char *string);
71
72 // Remove string from list; dont for get to free() the popped string
73 extern char *ThreadSafeStringList_pop(StringList *list);
74
75 // Print the list
76 extern void ThreadSafeStringList_print(StringList *list);
77
78 // Cleanup the list
80
81#ifdef __cplusplus
82}
83#endif /* __cplusplus */
84
85#endif /* __THREADSAFE_STRINGLIST_ */
Core type definitions, structures, and configuration constants for the OpenLCB library.
Definition threadsafe_stringlist.h:53
int head
Definition threadsafe_stringlist.h:56
pthread_mutex_t mutex
Definition threadsafe_stringlist.h:57
int count
Definition threadsafe_stringlist.h:55
void ThreadSafeStringList_init(StringList *list)
Definition threadsafe_stringlist.c:42
void ThreadSafeStringList_remove(StringList *list, const char *str)
Definition threadsafe_stringlist.c:114
void ThreadSafeStringList_add(StringList *list, const char *string)
Definition threadsafe_stringlist.c:100
#define MAX_STRINGS
Definition threadsafe_stringlist.h:45
void ThreadSafeStringList_destroy(StringList *list)
Definition threadsafe_stringlist.c:149
void ThreadSafeStringList_print(StringList *list)
Definition threadsafe_stringlist.c:136
uint8_t ThreadSafeStringList_push(StringList *list, const char *string)
Definition threadsafe_stringlist.c:51
char * ThreadSafeStringList_pop(StringList *list)
Definition threadsafe_stringlist.c:77

Copyright (c) 2026 Jim Kueneman all rights reserved. See the License