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;
78 unsigned long long totalBuffers(
void)
const;
84 unsigned long long totalLabels(
void)
const;
91 unsigned long long totalMessages(
void)
const;
99 void produce(
const size_t numElements);
110 void popBuffer(
const size_t numBytes);
116 void postLabel(
const Label &label);
122 template <
typename ValueType>
123 void postMessage(ValueType &&message);
139 bool isSignal(
void)
const;
159 void setReadBeforeWrite(
InputPort *port);
176 unsigned long long _totalElements;
177 unsigned long long _totalBuffers;
178 unsigned long long _totalLabels;
179 unsigned long long _totalMessages;
182 size_t _pendingElements;
183 std::vector<Label> _postedLabels;
197 bool bufferManagerEmpty(
void);
199 void bufferManagerPop(
const size_t numBytes);
203 void tokenManagerInit(
void);
204 bool tokenManagerEmpty(
void);
206 void tokenManagerPop(
const size_t numBytes);
208 std::vector<InputPort *> _subscribers;
210 bool _bufferFromManager;
215 friend class WorkerActor;
217 void _postMessage(
const Object &message);
#define POTHOS_API
Definition: Config.hpp:41
Definition: OutputPort.hpp:30
Definition: SpinLock.hpp:26
Definition: Object.hpp:55
Definition: ManagedBuffer.hpp:27
Definition: RingDeque.hpp:28
std::shared_ptr< BufferManager > Sptr
Definition: BufferManager.hpp:60
Definition: BufferChunk.hpp:26