SplitterV1
SplitterV1 decodes a Batcher v1 super-frame and emits one Rogue stream
frame per record.
Protocol reference: https://confluence.slac.stanford.edu/x/th1SDg
SplitterV1 objects in C++ are referenced by the following shared pointer typedef:
-
typedef std::shared_ptr<rogue::protocols::batcher::SplitterV1> rogue::protocols::batcher::SplitterV1Ptr
The class description is shown below:
-
class SplitterV1 : public rogue::interfaces::stream::Master, public rogue::interfaces::stream::Slave
Splits one batcher v1 super-frame into per-record output frames.
Protocol reference: https://confluence.slac.stanford.edu/x/th1SDg
SplitterV1usesCoreV1to parse a batcher super-frame, then emits one Rogue stream frame per parsedDatarecord:Payload bytes copied from record data.
Channel set from record destination.
First/last user fields propagated from record metadata.
Threading model:
No internal worker thread is created.
Processing executes synchronously in the caller thread of
acceptFrame().
Public Functions
-
SplitterV1()
Constructs a
SplitterV1instance.This constructor is a low-level C++ allocation path. Prefer
create()when shared ownership or Python exposure is required.
-
~SplitterV1()
Destroys the splitter.
Accepts one batcher v1 frame and emits parsed records as frames.
- Parameters:
frame – Input batcher super-frame.
Public Static Functions
-
static std::shared_ptr<rogue::protocols::batcher::SplitterV1> create()
Creates a
SplitterV1instance.This static factory is the preferred construction path when the object is shared across Rogue graph connections or exposed to Python. It returns
std::shared_ptrownership compatible with Rogue pointer typedefs.- Returns:
Shared pointer to the created splitter.
-
static void setup_python()
Registers Python bindings for this class.