42 int index(
void)
const;
45 const std::string &name(
void)
const;
48 const std::string &alias(
void)
const;
51 void setAlias(
const std::string &alias);
54 const DType &dtype(
void)
const;
57 const std::string &domain(
void)
const;
69 size_t elements(
void)
const;
76 unsigned long long totalElements(
void)
const;
84 unsigned long long totalBuffers(
void)
const;
90 unsigned long long totalLabels(
void)
const;
97 unsigned long long totalMessages(
void)
const;
105 void produce(
const size_t numElements);
116 void popBuffer(
const size_t numBytes);
122 void postLabel(
const Label &label);
128 template <
typename ValueType>
129 void postMessage(ValueType &&message);
145 bool isSignal(
void)
const;
165 void setReadBeforeWrite(
InputPort *port);
183 unsigned long long _totalElements;
184 unsigned long long _totalBuffers;
185 unsigned long long _totalLabels;
186 unsigned long long _totalMessages;
189 size_t _pendingElements;
190 std::vector<Label> _postedLabels;
204 bool bufferManagerEmpty(
void);
206 void bufferManagerPop(
const size_t numBytes);
210 void tokenManagerInit(
void);
211 bool tokenManagerEmpty(
void);
213 void tokenManagerPop(
const size_t numBytes);
215 std::vector<InputPort *> _subscribers;
217 bool _bufferFromManager;
222 friend class WorkerActor;
224 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