Application

Application is the per-destination packetizer endpoint used by upper-layer protocol/application stream paths. This page is reference-only; for conceptual context see Packetizer Protocol.

Python binding

This C++ class is also exported into Python as rogue.protocols.packetizer.Application.

Python API page: - Application

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

typedef std::shared_ptr<rogue::protocols::packetizer::Application> rogue::protocols::packetizer::ApplicationPtr
[header]

The class description is shown below:

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

Packetizer application endpoint.

Provides per-destination stream ingress/egress into the packetizer stack.

Public Functions

explicit Application(uint8_t id)
[header] [impl]

Constructs a packetizer application endpoint.

Creator.

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

Parameters:

id – Destination/application ID.

~Application()
[header] [impl]

Destroys the application endpoint.

Destructor.

void setController(std::shared_ptr<rogue::protocols::packetizer::Controller> cntl)
[header] [impl]

Attaches the packetizer controller.

Setup links.

Parameters:

cntlController instance that handles packetizer state.

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

Queues a frame for packetized transmission.

Push frame for transmit.

Parameters:

frame – Frame to send through this application channel.

virtual std::shared_ptr<rogue::interfaces::stream::Frame> acceptReq(uint32_t size, bool zeroCopyEn)
[header] [impl]

Allocates a frame for upstream writers.

Generate a Frame. Called from master.

Called by the stream master side of this endpoint.

Parameters:
  • size – Minimum requested payload size in bytes.

  • zeroCopyEn – True to allow zero-copy allocation when possible.

Returns:

Newly allocated frame.

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

Accepts a frame from upstream application logic.

Accept a frame from master.

Parameters:

frame – Input frame to packetize.

Public Static Functions

static std::shared_ptr<rogue::protocols::packetizer::Application> create(uint8_t id)
[header] [impl]

Creates a packetizer application endpoint.

Class creation.

Parameter semantics are identical to the constructor; see Application() for endpoint-construction 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 Port

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:

id – Destination/application ID.

Returns:

Shared pointer to the created application endpoint.

static void setup_python()
[header] [impl]

Registers Python bindings for this class.