SplitterV2

SplitterV2 decodes a Batcher v2 super-frame and emits one Rogue stream frame per record. For conceptual guidance, see Batcher Protocol Splitter.

Protocol reference: https://confluence.slac.stanford.edu/x/L2VlK

Python binding

This C++ class is also exported into Python as rogue.protocols.batcher.SplitterV2.

Python API page: - SplitterV2

SplitterV2 objects in C++ are referenced by the following shared pointer typedef:

typedef std::shared_ptr<rogue::protocols::batcher::SplitterV2> rogue::protocols::batcher::SplitterV2Ptr
[header]

The class description is shown below:

class SplitterV2 : public rogue::interfaces::stream::Master, public rogue::interfaces::stream::Slave
[header]

Splits one batcher v2 super-frame into per-record output frames.

Protocol reference: https://confluence.slac.stanford.edu/x/L2VlK

SplitterV2 uses CoreV2 to parse a batcher super-frame, then emits one Rogue stream frame per parsed Data record:

  • 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

SplitterV2()
[header] [impl]

Constructs a SplitterV2 instance.

Creator.

This constructor is a low-level C++ allocation path. Prefer create() when shared ownership or Python exposure is required.

~SplitterV2()
[header] [impl]

Destroys the splitter.

Deconstructor.

virtual void acceptFrame(std::shared_ptr<rogue::interfaces::stream::Frame> frame)
[header] [impl]

Accepts one batcher v2 frame and emits parsed records as frames.

Accept a frame from master.

Parameters:

frame – Input batcher super-frame.

Public Static Functions

static std::shared_ptr<rogue::protocols::batcher::SplitterV2> create()
[header] [impl]

Creates a SplitterV2 instance.

Class creation.

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_ptr ownership compatible with Rogue pointer typedefs.

Company : SLAC National Accelerator Laboratory

Description: SLAC Splitter 2

This file is part of the rogue software platform. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of the rogue software platform, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE.txt file.

Returns:

Shared pointer to the created splitter.

static void setup_python()
[header] [impl]

Registers Python bindings for this class.

Setup class in python.