42 int index(
void)
const;
45 const std::string &name(
void)
const;
48 const DType &dtype(
void)
const;
51 const std::string &domain(
void)
const;
63 size_t elements(
void)
const;
70 unsigned long long totalElements(
void)
const;
77 unsigned long long totalBuffers(
void)
const;
84 unsigned long long totalLabels(
void)
const;
91 unsigned long long totalMessages(
void)
const;
94 bool hasMessage(
void);
111 void removeLabel(
const Label &label);
119 void consume(
const size_t numElements);
136 void setReserve(
const size_t numElements);
141 bool isSlot(
void)
const;
158 void pushLabel(
const Label &label);
164 void pushMessage(
const Object &message);
188 unsigned long long _totalElements;
189 unsigned long long _totalBuffers;
190 unsigned long long _totalLabels;
191 unsigned long long _totalMessages;
194 size_t _pendingElements;
195 size_t _reserveElements;
206 std::vector<Label> _inlineMessages;
212 std::vector<OutputPort *> _subscribers;
216 bool asyncMessagesEmpty(
void);
217 Object asyncMessagesPop(
void);
218 void asyncMessagesClear(
void);
222 bool slotCallsEmpty(
void);
223 Object slotCallsPop(
void);
224 void slotCallsClear(
void);
227 void inlineMessagesPush(
const Label &label);
228 void inlineMessagesClear(
void);
232 void bufferAccumulatorPush(
const BufferChunk &buffer);
233 void bufferAccumulatorPushNoLock(
const BufferChunk &buffer);
234 void bufferAccumulatorPop(
const size_t numBytes);
235 void bufferAccumulatorRequire(
const size_t numBytes);
236 void bufferAccumulatorClear(
void);
239 void bufferLabelPush(
240 const std::vector<Label> &postedLabels,
246 friend class WorkerActor;
Definition: BufferAccumulator.hpp:31
#define POTHOS_API
Definition: Config.hpp:41
Definition: OutputPort.hpp:30
Definition: SpinLock.hpp:26
Definition: Object.hpp:55
Definition: RingDeque.hpp:28
Definition: BufferChunk.hpp:26
static const BufferChunk & null(void)
Get a const reference to a null/empty BufferChunk.