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);
117 void popElements(
const size_t numElements);
152 template <
typename... ValueType>
153 void postLabel(ValueType&&... label);
159 template <
typename ValueType>
160 void postMessage(ValueType &&message);
171 template <
typename T,
typename... Args>
172 void emplaceMessage(Args&&... args);
183 template <
typename ValueType>
184 void postBuffer(ValueType &&buffer);
198 void setReserve(
const size_t numElements);
203 bool isSignal(
void)
const;
223 void setReadBeforeWrite(
InputPort *port);
241 unsigned long long _totalElements;
242 unsigned long long _totalBuffers;
243 unsigned long long _totalLabels;
244 unsigned long long _totalMessages;
247 size_t _pendingElements;
248 size_t _reserveElements;
249 std::vector<Label> _postedLabels;
263 bool bufferManagerEmpty(
void);
265 void bufferManagerPop(
const size_t numBytes);
269 void tokenManagerInit(
void);
270 bool tokenManagerEmpty(
void);
272 void tokenManagerPop(
const size_t numBytes);
274 std::vector<InputPort *> _subscribers;
276 bool _bufferFromManager;
282 friend class WorkerActor;
284 void _postMessage(
const Object &message);
#define POTHOS_API
Definition: Config.hpp:41
Definition: OutputPort.hpp:31
Definition: SpinLock.hpp:26
Definition: ArchiveEntry.hpp:20
Definition: Object.hpp:47
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