rogue
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
rogue::interfaces::memory Namespace Reference

Classes

class  Block
 Memory interface block device. More...
 
class  Emulate
 Memory interface emulator device. More...
 
class  Hub
 Memory interface Hub device. More...
 
class  HubWrap
 Internal Boost.Python wrapper for rogue::interfaces::memory::Hub. Enables Python subclasses to override virtual transaction handling. More...
 
class  Master
 Master endpoint for memory transactions. More...
 
class  Slave
 Memory slave device. More...
 
class  SlaveWrap
 
class  TcpClient
 Memory TCP bridge client. More...
 
class  TcpServer
 Memory TCP bridge server. More...
 
class  Transaction
 Memory transaction container passed between master and slave. More...
 
class  TransactionLock
 Scoped lock wrapper for a memory transaction. More...
 
class  Variable
 Memory variable descriptor and typed accessor facade. More...
 
class  VariableWrap
 Internal Boost.Python wrapper for rogue::interfaces::memory::Variable. Enables Python subclasses to override variable-update behavior and bridge Python value objects to/from the C++ variable storage representation. More...
 

Typedefs

typedef std::shared_ptr< rogue::interfaces::memory::BlockBlockPtr
 Shared pointer alias for Block.
 
typedef std::shared_ptr< rogue::interfaces::memory::EmulateEmulatePtr
 Shared pointer alias for Emulate.
 
typedef std::shared_ptr< rogue::interfaces::memory::HubHubPtr
 
typedef std::shared_ptr< rogue::interfaces::memory::HubWrapHubWrapPtr
 
typedef std::shared_ptr< rogue::interfaces::memory::MasterMasterPtr
 Shared pointer alias for Master.
 
typedef std::shared_ptr< rogue::interfaces::memory::SlaveSlavePtr
 Shared pointer alias for Slave.
 
typedef std::shared_ptr< rogue::interfaces::memory::SlaveWrapSlaveWrapPtr
 
typedef std::shared_ptr< rogue::interfaces::memory::TcpClientTcpClientPtr
 Shared pointer alias for TcpClient.
 
typedef std::shared_ptr< rogue::interfaces::memory::TcpServerTcpServerPtr
 Shared pointer alias for TcpServer.
 
using TransactionMap = std::map< uint32_t, std::shared_ptr< rogue::interfaces::memory::Transaction > >
 
typedef std::shared_ptr< rogue::interfaces::memory::TransactionTransactionPtr
 Shared pointer alias for Transaction.
 
typedef std::shared_ptr< rogue::interfaces::memory::TransactionLockTransactionLockPtr
 Shared pointer alias for TransactionLock.
 
typedef std::shared_ptr< rogue::interfaces::memory::VariableVariablePtr
 
typedef std::shared_ptr< rogue::interfaces::memory::VariableWrapVariableWrapPtr
 

Functions

template<typename T >
std::vector< T > py_list_to_std_vector (const boost::python::object &iterable)
 
template<class T >
boost::python::list std_vector_to_py_list (std::vector< T > vector)
 
template<typename T >
py_object_convert (const boost::python::object &obj)
 
void setup_module ()
 

Variables

static const uint32_t Read = 0x1
 Memory read transaction type.
 
static const uint32_t Write = 0x2
 Memory write transaction type.
 
static const uint32_t Post = 0x3
 Memory posted write transaction type.
 
static const uint32_t Verify = 0x4
 Memory verify readback transaction type.
 
static const uint32_t TcpBridgeProbe = 0xFFFFFFFE
 Internal TCP bridge readiness probe transaction type.
 
static const uint8_t PyFunc = 0x00
 Block access type for Python callback functions.
 
static const uint8_t Bytes = 0x01
 Block access type for raw byte data.
 
static const uint8_t UInt = 0x02
 Block access type for unsigned integer data.
 
static const uint8_t Int = 0x03
 Block access type for signed integer data.
 
static const uint8_t Bool = 0x04
 Block access type for boolean data.
 
static const uint8_t String = 0x05
 Block access type for string data.
 
static const uint8_t Float = 0x06
 Block access type for floating-point (float) data.
 
static const uint8_t Double = 0x07
 Block access type for double-precision (double) data.
 
static const uint8_t Fixed = 0x08
 Block access type for fixed-point numeric data.
 
static const uint8_t Custom = 0x80
 Block access type for custom handlers.
 

Typedef Documentation

◆ BlockPtr

Shared pointer alias for Block.

Definition at line 902 of file Block.h.

◆ EmulatePtr

Shared pointer alias for Emulate.

Definition at line 112 of file Emulate.h.

◆ HubPtr

Alias for using shared pointer as HubPtr

Definition at line 231 of file Hub.h.

◆ HubWrapPtr

Definition at line 274 of file Hub.h.

◆ MasterPtr

Shared pointer alias for Master.

Definition at line 410 of file Master.h.

◆ SlavePtr

Shared pointer alias for Slave.

Definition at line 310 of file Slave.h.

◆ SlaveWrapPtr

Definition at line 399 of file Slave.h.

◆ TcpClientPtr

Shared pointer alias for TcpClient.

Definition at line 190 of file TcpClient.h.

◆ TcpServerPtr

Shared pointer alias for TcpServer.

Definition at line 150 of file TcpServer.h.

◆ TransactionLockPtr

Shared pointer alias for TransactionLock.

Definition at line 116 of file TransactionLock.h.

◆ TransactionMap

using rogue::interfaces::memory::TransactionMap = typedef std::map<uint32_t, std::shared_ptr<rogue::interfaces::memory::Transaction> >

Definition at line 48 of file Transaction.h.

◆ TransactionPtr

Shared pointer alias for Transaction.

Definition at line 357 of file Transaction.h.

◆ VariablePtr

Alias for using shared pointer as VariablePtr

Definition at line 43 of file Variable.h.

◆ VariableWrapPtr

Definition at line 985 of file Variable.h.

Function Documentation

◆ py_list_to_std_vector()

template<typename T >
std::vector< T > rogue::interfaces::memory::py_list_to_std_vector ( const boost::python::object &  iterable)
inline

Definition at line 42 of file Block.h.

◆ py_object_convert()

template<typename T >
T rogue::interfaces::memory::py_object_convert ( const boost::python::object &  obj)
inline

Definition at line 59 of file Block.h.

◆ setup_module()

void rogue::interfaces::memory::setup_module ( )

Company : SLAC National Accelerator Laboratory

Description:

Python module setup

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.

Definition at line 39 of file module.cpp.

◆ std_vector_to_py_list()

template<class T >
boost::python::list rogue::interfaces::memory::std_vector_to_py_list ( std::vector< T >  vector)
inline

Definition at line 48 of file Block.h.

Variable Documentation

◆ Bool

const uint8_t rogue::interfaces::memory::Bool = 0x04
static

Block access type for boolean data.

Exposed to Python as rogue.interfaces.memory.Bool.

Definition at line 106 of file Constants.h.

◆ Bytes

const uint8_t rogue::interfaces::memory::Bytes = 0x01
static

Block access type for raw byte data.

Exposed to Python as rogue.interfaces.memory.Bytes.

Definition at line 85 of file Constants.h.

◆ Custom

const uint8_t rogue::interfaces::memory::Custom = 0x80
static

Block access type for custom handlers.

Exposed to Python as rogue.interfaces.memory.Custom.

Definition at line 141 of file Constants.h.

◆ Double

const uint8_t rogue::interfaces::memory::Double = 0x07
static

Block access type for double-precision (double) data.

Exposed to Python as rogue.interfaces.memory.Double.

Definition at line 127 of file Constants.h.

◆ Fixed

const uint8_t rogue::interfaces::memory::Fixed = 0x08
static

Block access type for fixed-point numeric data.

Exposed to Python as rogue.interfaces.memory.Fixed.

Definition at line 134 of file Constants.h.

◆ Float

const uint8_t rogue::interfaces::memory::Float = 0x06
static

Block access type for floating-point (float) data.

Exposed to Python as rogue.interfaces.memory.Float.

Definition at line 120 of file Constants.h.

◆ Int

const uint8_t rogue::interfaces::memory::Int = 0x03
static

Block access type for signed integer data.

Exposed to Python as rogue.interfaces.memory.Int.

Definition at line 99 of file Constants.h.

◆ Post

const uint32_t rogue::interfaces::memory::Post = 0x3
static

Memory posted write transaction type.

Exposed to Python as rogue.interfaces.memory.Post.

Definition at line 50 of file Constants.h.

◆ PyFunc

const uint8_t rogue::interfaces::memory::PyFunc = 0x00
static

Block access type for Python callback functions.

Exposed to Python as rogue.interfaces.memory.PyFunc.

Definition at line 78 of file Constants.h.

◆ Read

const uint32_t rogue::interfaces::memory::Read = 0x1
static

Memory read transaction type.

Exposed to Python as rogue.interfaces.memory.Read.

Definition at line 36 of file Constants.h.

◆ String

const uint8_t rogue::interfaces::memory::String = 0x05
static

Block access type for string data.

Exposed to Python as rogue.interfaces.memory.String.

Definition at line 113 of file Constants.h.

◆ TcpBridgeProbe

const uint32_t rogue::interfaces::memory::TcpBridgeProbe = 0xFFFFFFFE
static

Internal TCP bridge readiness probe transaction type.

Used by the memory TCP bridge client/server to verify that the request/ response path is usable. This is an internal bridge control message and is not exported as a normal Python transaction type constant.

Definition at line 67 of file Constants.h.

◆ UInt

const uint8_t rogue::interfaces::memory::UInt = 0x02
static

Block access type for unsigned integer data.

Exposed to Python as rogue.interfaces.memory.UInt.

Definition at line 92 of file Constants.h.

◆ Verify

const uint32_t rogue::interfaces::memory::Verify = 0x4
static

Memory verify readback transaction type.

Exposed to Python as rogue.interfaces.memory.Verify.

Definition at line 57 of file Constants.h.

◆ Write

const uint32_t rogue::interfaces::memory::Write = 0x2
static

Memory write transaction type.

Exposed to Python as rogue.interfaces.memory.Write.

Definition at line 43 of file Constants.h.