|
rogue
|
Scoped lock wrapper for stream frames. More...
#include <FrameLock.h>
Public Member Functions | |
| FrameLock (std::shared_ptr< rogue::interfaces::stream::Frame > frame) | |
| Constructs a lock wrapper for the provided frame. | |
| ~FrameLock () | |
| Destroys the wrapper and releases any held lock. | |
| void | lock () |
| Locks the associated frame when not already locked. | |
| void | unlock () |
| Unlocks the associated frame when currently locked. | |
| void | enter () |
| Python context-manager entry hook. | |
| void | exit (void *, void *, void *) |
| Python context-manager exit hook. | |
Static Public Member Functions | |
| static std::shared_ptr< rogue::interfaces::stream::FrameLock > | create (std::shared_ptr< rogue::interfaces::stream::Frame > frame) |
| Creates a frame lock wrapper. | |
| static void | setup_python () |
| Registers this type with Python bindings. | |
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().
Definition at line 40 of file FrameLock.h.
|
explicit |
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.
| frame | Frame to lock. |
Definition at line 40 of file FrameLock.cpp.
| rogue::interfaces::stream::FrameLock::~FrameLock | ( | ) |
Destroys the wrapper and releases any held lock.
Destructor.
Definition at line 60 of file FrameLock.cpp.
|
static |
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.
| frame | Frame to lock. |
Description:
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
Definition at line 34 of file FrameLock.cpp.
| void rogue::interfaces::stream::FrameLock::enter | ( | ) |
Python context-manager entry hook.
Enter method for python, do nothing.
Exists to support Python with usage. Exposed as __enter__() in Python.
Definition at line 82 of file FrameLock.cpp.
| void rogue::interfaces::stream::FrameLock::exit | ( | void * | , |
| void * | , | ||
| void * | |||
| ) |
Python context-manager exit hook.
Exit method for python, do nothing.
Exists to support Python with usage. Exposed as __exit__() in Python.
Definition at line 85 of file FrameLock.cpp.
| void rogue::interfaces::stream::FrameLock::lock | ( | ) |
Locks the associated frame when not already locked.
lock
Exposed as lock() in Python.
Definition at line 65 of file FrameLock.cpp.
|
static |
Registers this type with Python bindings.
Setup class in python.
Definition at line 48 of file FrameLock.cpp.
| void rogue::interfaces::stream::FrameLock::unlock | ( | ) |
Unlocks the associated frame when currently locked.
lock
Exposed as unlock() in Python.
Definition at line 74 of file FrameLock.cpp.