myMPD
Internal API documentation
Loading...
Searching...
No Matches
msg_queue.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-3.0-or-later
3 myMPD (c) 2018-2025 Juergen Mang <mail@jcgames.de>
4 https://github.com/jcorporation/mympd
5*/
6
11#ifndef MYMPD_QUEUE_H
12#define MYMPD_QUEUE_H
13
14#include "src/lib/api.h"
15
16#include <pthread.h>
17#include <stdbool.h>
18#include <time.h>
19
24 void *data;
25 unsigned id;
26 time_t timestamp;
27 struct t_mympd_msg *next;
28};
29
37
42 unsigned length;
43 struct t_mympd_msg *head;
44 struct t_mympd_msg *tail;
45 pthread_mutex_t mutex;
46 pthread_cond_t wakeup;
47 const char *name;
49 // to wakeup the mympd_api event loop
51 // to wakeup the mongoose event loop
52 unsigned long mg_conn_id;
53 void *mg_mgr;
54};
55
57 bool event);
58void *mympd_queue_free(struct t_mympd_queue *queue);
59bool mympd_queue_push(struct t_mympd_queue *queue, void *data, unsigned id);
60void *mympd_queue_shift(struct t_mympd_queue *queue, int timeout_ms, unsigned id);
61int mympd_queue_expire_age(struct t_mympd_queue *queue, time_t max_age_s);
62#endif
myMPD API handling
void * mympd_queue_free(struct t_mympd_queue *queue)
Definition msg_queue.c:64
int mympd_queue_expire_age(struct t_mympd_queue *queue, time_t max_age_s)
Definition msg_queue.c:197
void * mympd_queue_shift(struct t_mympd_queue *queue, int timeout_ms, unsigned id)
Definition msg_queue.c:125
struct t_mympd_queue * mympd_queue_create(const char *name, enum mympd_queue_types type, bool event)
Definition msg_queue.c:41
bool mympd_queue_push(struct t_mympd_queue *queue, void *data, unsigned id)
Definition msg_queue.c:78
mympd_queue_types
Definition msg_queue.h:33
@ QUEUE_TYPE_REQUEST
queue holds only t_work_request entries
Definition msg_queue.h:34
@ QUEUE_TYPE_RESPONSE
queue holds only t_work_response entries
Definition msg_queue.h:35
Definition msg_queue.h:23
time_t timestamp
messages added timestamp
Definition msg_queue.h:26
unsigned id
id of the message
Definition msg_queue.h:25
void * data
data t_work_request or t_work_response
Definition msg_queue.h:24
struct t_mympd_msg * next
pointer to next message
Definition msg_queue.h:27
Definition msg_queue.h:41
struct t_mympd_msg * head
pointer to first message
Definition msg_queue.h:43
enum mympd_queue_types type
the queue type (request or response)
Definition msg_queue.h:48
pthread_mutex_t mutex
the mutex
Definition msg_queue.h:45
struct t_mympd_msg * tail
pointer to last message
Definition msg_queue.h:44
const char * name
descriptive name
Definition msg_queue.h:47
int event_fd
event fd
Definition msg_queue.h:50
unsigned length
length of the queue
Definition msg_queue.h:42
pthread_cond_t wakeup
condition variable for the mutex
Definition msg_queue.h:46
unsigned long mg_conn_id
mongoose listener id
Definition msg_queue.h:52
void * mg_mgr
mongoose mgr
Definition msg_queue.h:53