43 int index(
void)
const;
46 const std::string &name(
void)
const;
49 const std::string &alias(
void)
const;
52 void setAlias(
const std::string &alias);
55 const DType &dtype(
void)
const;
58 const std::string &domain(
void)
const;
70 size_t elements(
void)
const;
77 unsigned long long totalElements(
void)
const;
85 unsigned long long totalBuffers(
void)
const;
91 unsigned long long totalLabels(
void)
const;
98 unsigned long long totalMessages(
void)
const;
106 void produce(
const size_t numElements);
118 void popBuffer(
const size_t numBytes);
129 void popElements(
const size_t numElements);
146 void postLabel(
const Label &label);
152 template <
typename ValueType>
153 void postMessage(ValueType &&message);
178 void setReserve(
const size_t numElements);
183 bool isSignal(
void)
const;
203 void setReadBeforeWrite(
InputPort *port);
221 unsigned long long _totalElements;
222 unsigned long long _totalBuffers;
223 unsigned long long _totalLabels;
224 unsigned long long _totalMessages;
227 size_t _pendingElements;
228 size_t _reserveElements;
229 std::vector<Label> _postedLabels;
243 bool bufferManagerEmpty(
void);
245 void bufferManagerPop(
const size_t numBytes);
249 void tokenManagerInit(
void);
250 bool tokenManagerEmpty(
void);
252 void tokenManagerPop(
const size_t numBytes);
254 std::vector<InputPort *> _subscribers;
256 bool _bufferFromManager;
262 friend class WorkerActor;
264 void _postMessage(
const Object &message);
#define POTHOS_API
Definition: Config.hpp:41
Definition: OutputPort.hpp:31
Definition: SpinLock.hpp:26
Definition: Object.hpp:55
Definition: ManagedBuffer.hpp:31
Definition: RingDeque.hpp:29
Definition: BufferPool.hpp:24
std::shared_ptr< BufferManager > Sptr
Definition: BufferManager.hpp:60
Definition: BufferChunk.hpp:30