InverterV1
InverterV1 rewrites Batcher v1 framing in place and forwards one
transformed output frame per input frame.
It is not a batching or unbatching stage.
Protocol reference: https://confluence.slac.stanford.edu/x/th1SDg
InverterV1 objects in C++ are referenced by the following shared pointer typedef:
-
typedef std::shared_ptr<rogue::protocols::batcher::InverterV1> rogue::protocols::batcher::InverterV1Ptr
The class description is shown below:
-
class InverterV1 : public rogue::interfaces::stream::Master, public rogue::interfaces::stream::Slave
In-place inverter for SLAC AXI Batcher v1 framing.
Protocol reference: https://confluence.slac.stanford.edu/x/th1SDg
InverterV1usesCoreV1metadata to reinterpret/shift record tail data inside the original frame payload. This produces a transformed frame layout expected by downstream consumers without allocating one frame per record. It is not a batching or unbatching stage: one input frame yields one output frame after in-place reformatting.InverterV1transforms a batcher v1 frame by copying per-record tail fields into the header/tail positions expected by downstream consumers and trimming the final tail from payload. The transformed frame is then forwarded. UseSplitterV1when true unbatching (one output frame per record) is desired.Threading model:
No internal worker thread is created.
Processing executes synchronously in the caller thread of
acceptFrame().
Public Functions
-
InverterV1()
Constructs an
InverterV1instance.This constructor is a low-level C++ allocation path. Prefer
create()when shared ownership or Python exposure is required.
-
~InverterV1()
Destroys the inverter.
Accepts, transforms, and forwards one batcher v1 frame.
- Parameters:
frame – Input frame to transform.
Public Static Functions
-
static std::shared_ptr<rogue::protocols::batcher::InverterV1> create()
Creates an
InverterV1instance.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 inverter.
-
static void setup_python()
Registers Python bindings for this class.