#include <modbuscpp/details/data-table.hpp>
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
base class
base block class
Template parameters | |
---|---|
base_container_t | base container type |
data_t | data type |
read_count_t | |
write_count_t |
Contents
Public types
- using data_type = data_t
-
using container_type = base_container_t<data_
type> - using mutable_iterator_type = container_type::iterator
- using iterator_type = container_type::const_iterator
-
using slice_type = std::pair<iterator_
type, iterator_ type> -
using mutable_slice_type = std::pair<mutable_
iterator_ type, mutable_ iterator_ type> - using size_type = container_type::size_type
- using data_reference = container_type::reference
- using const_data_reference = container_type::const_reference
Public static variables
-
static size_
type max_capacity constexpr
Constructors, destructors, conversion operators
-
base(const address_
t& starting_address, size_ type capacity = max_ capacity, data_ type default_value = 0) explicit noexcept -
base(const address_
t& starting_address, const container_ type& container) explicit noexcept
Public functions
-
auto ref(const address_
t& address) -> data_ reference pure virtual -
auto ref(const address_
t& address, size_ type count) -> mutable_ slice_ type pure virtual -
auto get(const address_
t& address, const read_count_t& count) const -> slice_ type pure virtual -
auto get(const address_
t& address) const -> const_ data_ reference pure virtual -
void set(const address_
t& address, const container_ type& buffer) pure virtual -
void set(const address_
t& address, data_t value) pure virtual - void reset() pure virtual
-
auto validate(const address_
t& address) const -> bool virtual -
auto validate(const address_
t& address, const read_count_t& count) const -> bool virtual -
auto validate(const address_
t& address, const write_count_t& count) const -> bool virtual -
auto validate_sz(const address_
t& address, size_ type count = 1) const -> bool virtual -
auto starting_address() const -> const address_
t& -
auto container() -> container_
type& -
auto container() const -> const container_
type& - auto default_value() const -> const data_t&
-
auto capacity() const -> size_
type virtual
Protected variables
- std::shared_mutex mutex_
-
const address_
t starting_address_ -
container_
type container_ -
const size_
type capacity_ - const data_t default_value_
Friends
-
template<typename ostream>auto operator<<(ostream& os, const base& obj) -> ostream&
Typedef documentation
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef data_t modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: data_type
Data type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef base_container_t<data_ type> modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: container_type
Container type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef container_type::iterator modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: mutable_iterator_type
Mutable iterator type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef container_type::const_iterator modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: iterator_type
Iterator type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef std::pair<iterator_ type, iterator_ type> modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: slice_type
Slice type
Containing begin and end that denotes slice of container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef std::pair<mutable_ iterator_ type, mutable_ iterator_ type> modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: mutable_slice_type
Mutable slice type
Containing begin and end that denotes mutable slice of container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef container_type::size_type modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: size_type
Size type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef container_type::reference modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: data_reference
Reference
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
typedef container_type::const_reference modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: const_data_reference
Const reference
Function documentation
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: base(const address_ t& starting_address,
size_ type capacity = max_ capacity,
data_ type default_value = 0) explicit noexcept
Parameters | |
---|---|
starting_address | starting address of container |
capacity | |
default_value | default value of container |
Base constructor
base block
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: base(const address_ t& starting_address,
const container_ type& container) explicit noexcept
Parameters | |
---|---|
starting_address | starting address of container |
container | container initializer |
Base constructor
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
data_ reference modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: ref(const address_ t& address) pure virtual
Parameters | |
---|---|
address | look-up address |
Returns | reference of single data from container |
Get reference of single data from container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
mutable_ slice_ type modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: ref(const address_ t& address,
size_ type count) pure virtual
Parameters | |
---|---|
address | look-up address |
count | number of slice |
Returns | pair of mutable iterator (begin and end) slice of data from container |
Get reference of data from container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
slice_ type modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: get(const address_ t& address,
const read_count_t& count) const pure virtual
Parameters | |
---|---|
address | look-up address |
count | number of slice |
Returns | pair of iterator (begin and end) slice of data from container |
Get slice of data from container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const_ data_ reference modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: get(const address_ t& address) const pure virtual
Parameters | |
---|---|
address | starting address |
Returns | single value from container |
Get single value from container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
void modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: set(const address_ t& address,
const container_ type& buffer) pure virtual
Parameters | |
---|---|
address | look-up address |
buffer |
Set slice of data from container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
void modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: set(const address_ t& address,
data_t value) pure virtual
Parameters | |
---|---|
address | look-up address |
value | value to add |
Set single data to container at specific address
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
void modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: reset() pure virtual
Reset container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
bool modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: validate(const address_ t& address) const virtual
Parameters | |
---|---|
address | look-up address |
Validate address with only 1 amount of data
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
bool modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: validate(const address_ t& address,
const read_count_t& count) const virtual
Parameters | |
---|---|
address | look-up address |
count | number of slice |
Validate with read_count_t
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
bool modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: validate(const address_ t& address,
const write_count_t& count) const virtual
Parameters | |
---|---|
address | look-up address |
count | number of slice |
Validate with write_count_t
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
bool modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: validate_sz(const address_ t& address,
size_ type count = 1) const virtual
Parameters | |
---|---|
address | look-up address |
count | number of slice |
Validate size type
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const address_ t& modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: starting_address() const
Returns | starting address |
---|
Get starting address
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
container_ type& modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: container()
Returns | container |
---|
Get container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const container_ type& modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: container() const
Returns | container (const) |
---|
Get container (const)
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const data_t& modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: default_value() const
Returns | default value |
---|
Get default value
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
template<typename ostream>
ostream& operator<<(ostream& os,
const base& obj)
Parameters | |
---|---|
os | ostream |
obj | base instance |
Returns | stream |
Ostream operator
Variable documentation
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
static size_ type modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: max_capacity constexpr
Max capacity
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
std::shared_mutex modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: mutex_ protected
Mutex
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const address_ t modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: starting_address_ protected
Starting address of container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
container_ type modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: container_ protected
Container
template<template<class...> class base_container_t, typename data_t, typename read_count_t, typename write_count_t>
const data_t modbus:: block:: base<base_container_t, data_t, read_count_t, write_count_t>:: default_value_ protected
Default value