Application
Application is the upper RSSI stream endpoint. It carries payload frames
between user protocol layers and the RSSI controller.
For conceptual guidance, see RSSI Protocol.
Python binding
This C++ class is also exported into Python as rogue.protocols.rssi.Application.
Python API page: - Application
objects in C++ are referenced by the following shared pointer typedef:
-
typedef std::shared_ptr<rogue::protocols::rssi::Application> rogue::protocols::rssi::ApplicationPtr
[header]
The class description is shown below:
-
class Application : public rogue::interfaces::stream::Master, public rogue::interfaces::stream::Slave
[header] RSSI application-side endpoint.
Provides stream ingress/egress for payload traffic through the RSSI stack.
Threading model:
Inbound application frames are handled synchronously in
acceptFrame()and forwarded toController::applicationRx().Outbound application frames are produced by a background thread started in
setController()and drained fromController::applicationTx().
Lifetime contract:
setController()must be called before destruction so the TX thread is created and can be cleanly stopped/joined.
Public Functions
-
Application()
[header] [impl] Constructs an RSSI application endpoint.
Creator.
This constructor is a low-level C++ allocation path. Prefer
create()when shared ownership or Python exposure is required.
Attaches the RSSI controller.
Setup links.
Stores controller reference and starts outbound worker thread.
- Parameters:
cntl – Controller instance that owns protocol state.
-
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 – Zero-copy hint (not used by RSSI application path).
- Returns:
Newly allocated frame.
Accepts a frame from upstream application logic.
Accept a frame from master.
- Parameters:
frame – Input frame for RSSI transmission.
Public Static Functions
-
static std::shared_ptr<rogue::protocols::rssi::Application> create()
[header] [impl] Creates an RSSI application endpoint.
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_ptrownership compatible with Rogue pointer typedefs.Company : SLAC National Accelerator Laboratory
Description: RSSI 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.
- Returns:
Shared pointer to the created application endpoint.