with shared memory

This commit is contained in:
2026-03-23 23:33:13 +01:00
parent 02fbc54e07
commit eb4e15c66b
4 changed files with 569 additions and 0 deletions

51
rktwebview_qt/shmqueue.h Normal file
View File

@@ -0,0 +1,51 @@
#ifndef SHMQUEUE_H
#define SHMQUEUE_H
#include "shm.h"
#include <QString>
#define COMMAND_SLOT 1
#define EVENT_SLOT 2
typedef struct __ShmQueueItem__
{
int cmd;
ShmPlace data_place;
ShmPlace next;
ShmPlace prev;
} ShmQueueItem;
typedef struct __ShmQueue_
{
ShmPlace first;
ShmPlace last;
int count;
} ShmQueueStart;
class ShmQueue
{
private:
Shm *_shm;
private:
ShmQueueStart *_queue;
ShmSem *_queue_sem;
bool _owner;
private:
void cleanup();
public:
int depth();
public:
bool dequeue(int &cmd, QString &json_data, bool wait = false);
void enqueue(int cmd, const QString &json_data);
public:
ShmQueue(Shm *shm, ShmSlot slot, bool owner);
~ShmQueue();
};
#endif // SHMQUEUE_H