ControllerV1

ControllerV1 is the packetizer v1 controller implementation used by Core. This page is reference-only; for version-selection guidance see Packetizer Protocol Core.

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

typedef std::shared_ptr<rogue::protocols::packetizer::ControllerV1> rogue::protocols::packetizer::ControllerV1Ptr
[header]

The class description is shown below:

class ControllerV1 : public rogue::protocols::packetizer::Controller, public rogue::EnableSharedFromThis<rogue::protocols::packetizer::ControllerV1>
[header]

Packetizer controller implementation for protocol v1.

Implements packetizer v1 frame parsing and assembly between the transport endpoint and per-destination application endpoints.

Public Functions

ControllerV1(bool enSsi, std::shared_ptr<rogue::protocols::packetizer::Transport> tran, std::shared_ptr<rogue::protocols::packetizer::Application> *app)
[header] [impl]

Constructs a packetizer v1 controller.

Creator.

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

Parameters:
  • enSsi – Enable SSI framing behavior.

  • tranTransport endpoint attached to this controller.

  • app – Pointer to array of application endpoints indexed by destination.

~ControllerV1()
[header] [impl]

Destroys the controller instance.

Destructor.

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

Processes a frame received at the transport interface.

Frame received at transport interface.

Parameters:

frameTransport frame to decode and route.

virtual void applicationRx(std::shared_ptr<rogue::interfaces::stream::Frame> frame, uint8_t id)
[header] [impl]

Processes a frame received from one application endpoint.

Frame received at application interface.

Parameters:
  • frameApplication frame to packetize.

  • id – Application/destination identifier.

Public Static Functions

static std::shared_ptr<rogue::protocols::packetizer::ControllerV1> create(bool enSsi, std::shared_ptr<rogue::protocols::packetizer::Transport> tran, std::shared_ptr<rogue::protocols::packetizer::Application> *app)
[header] [impl]

Creates a packetizer v1 controller.

Class creation.

Parameter semantics are identical to the constructor; see ControllerV1() for construction-path details. 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: Packetizer V1

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.

Parameters:
  • enSsi – Enable SSI framing behavior.

  • tranTransport endpoint attached to this controller.

  • app – Pointer to array of application endpoints indexed by destination.

Returns:

Shared pointer to a new controller instance.