Frame Lock

For conceptual usage, see:

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

typedef std::shared_ptr<rogue::interfaces::stream::FrameLock> rogue::interfaces::stream::FrameLockPtr
[header]

Shared pointer alias for FrameLock.

The class description is shown below:

class FrameLock
[header]

Scoped lock wrapper for stream frames.

Holds a lock while frame data is accessed. This allows multiple stream slaves to read/update safely while ensuring only one updater at a time. Locks are released on destruction. Instances are created via Frame::lock().

Public Functions

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

Constructs a lock wrapper for the provided frame.

Constructor.

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

Parameters:

frameFrame to lock.

~FrameLock()
[header] [impl]

Destroys the wrapper and releases any held lock.

Destructor.

void lock()
[header] [impl]

Locks the associated frame when not already locked.

lock

Exposed as lock() in Python.

void unlock()
[header] [impl]

Unlocks the associated frame when currently locked.

lock

Exposed as unlock() in Python.

void enter()
[header] [impl]

Python context-manager entry hook.

Enter method for python, do nothing.

Exists to support Python with usage. Exposed as __enter__() in Python.

void exit(void*, void*, void*)
[header] [impl]

Python context-manager exit hook.

Exit method for python, do nothing.

Exists to support Python with usage. Exposed as __exit__() in Python.

Public Static Functions

static std::shared_ptr<rogue::interfaces::stream::FrameLock> create(std::shared_ptr<rogue::interfaces::stream::Frame> frame)
[header] [impl]

Creates a frame lock wrapper.

Create a frame container.

Intended for internal use by Frame. Parameter semantics are identical to the constructor; see FrameLock() for lock-wrapper behavior 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: lock

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:

frameFrame to lock.

Returns:

Shared pointer to the created lock object.

static void setup_python()
[header] [impl]

Registers this type with Python bindings.

Setup class in python.