no pointers, just bytes buffers of fixed size
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#define asynStreamGeneratorDriver_H
|
||||
|
||||
#include "asynPortDriver.h"
|
||||
#include <epicsRingPointer.h>
|
||||
#include <epicsRingBytes.h>
|
||||
#include <librdkafka/rdkafka.h>
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -62,8 +62,9 @@ struct __attribute__((__packed__)) NormalisedEvent {
|
||||
uint8_t source;
|
||||
uint32_t pixelId;
|
||||
|
||||
inline NormalisedEvent(uint64_t timestamp, uint8_t source, uint32_t pixelId)
|
||||
: timestamp(timestamp), source(source), pixelId(pixelId){};
|
||||
// inline NormalisedEvent(uint64_t timestamp, uint8_t source, uint32_t
|
||||
// pixelId)
|
||||
// : timestamp(timestamp), source(source), pixelId(pixelId){};
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -140,13 +141,13 @@ class asynStreamGeneratorDriver : public asynPortDriver {
|
||||
const bool kafkaEnabled;
|
||||
const int kafkaMaxPacketSize;
|
||||
|
||||
epicsRingPointer<NormalisedEvent> udpQueue;
|
||||
epicsRingBytesId udpQueue;
|
||||
|
||||
epicsRingPointer<NormalisedEvent> monitorQueue;
|
||||
epicsRingBytesId monitorQueue;
|
||||
rd_kafka_t *monitorProducer;
|
||||
const char *monitorTopic;
|
||||
|
||||
epicsRingPointer<NormalisedEvent> detectorQueue;
|
||||
epicsRingBytesId detectorQueue;
|
||||
rd_kafka_t *detectorProducer;
|
||||
const char *detectorTopic;
|
||||
|
||||
@@ -155,7 +156,10 @@ class asynStreamGeneratorDriver : public asynPortDriver {
|
||||
asynStatus createInt32Param(asynStatus status, char *name, int *variable,
|
||||
epicsInt32 initialValue = 0);
|
||||
|
||||
inline void queueForKafka(NormalisedEvent *ne);
|
||||
inline void queueForKafka(NormalisedEvent &&ne);
|
||||
|
||||
void produce(epicsRingBytesId eventQueue, rd_kafka_t *kafkaProducer,
|
||||
const char *topic, const char *source);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user