HLCC Documentation 3.0.1
Loading...
Searching...
No Matches
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData Struct Reference

Value type for data for buffering and writing to OLDB. This base class is used as an interface toward the client of CiiOldbDataPointAsync. More...

#include <ciiOldbDataPointAsync.hpp>

Inheritance diagram for hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData:
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbDataWithPromise

Public Member Functions

 OldbData (elt::oldb::CiiOldbDpQuality quality)
 
 OldbData (std::optional< T > value, std::optional< int64_t > timestamp, std::optional< elt::oldb::CiiOldbDpQuality > quality)
 
virtual ~OldbData ()=default
 Destructor.
 
 OldbData (const OldbData &)=delete
 
OldbDataoperator= (const OldbData &)=delete
 
 OldbData (OldbData &&)=default
 
OldbDataoperator= (OldbData &&)=default
 
std::optional< T > GetValue () const
 
void SetValue (T value)
 
std::optional< int64_t > GetTimestamp () const
 
void SetTimestamp (int64_t timestamp)
 
std::optional< elt::oldb::CiiOldbDpQuality > GetQuality () const
 
 CiiOldbDataPointAsync (std::string name, std::shared_ptr< elt::oldb::CiiOldbDataPoint< T > > delegate, boost::asio::thread_pool &async_exec, const log4cplus::Logger &logger, std::size_t buffer_capacity=1)
 Constructor.
 
virtual ~CiiOldbDataPointAsync ()
 
std::shared_ptr< elt::oldb::CiiOldbDpValue< T > > ReadValue (bool check_bad_quality=true)
 
boost::future< typename CiiOldbDataPointAsync< T >::OldbDataWriteValue (const T &value, int64_t timestamp=elt::oldb::CiiOldbUtil::Now(), elt::oldb::CiiOldbDpQuality quality=elt::oldb::CiiOldbDpQuality::OK, bool is_disable_publishing=false)
 
boost::future< typename CiiOldbDataPointAsync< T >::OldbDataSetQuality (elt::oldb::CiiOldbDpQuality quality, bool is_disable_publishing=false)
 

Detailed Description

template<typename T>
struct hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData

Value type for data for buffering and writing to OLDB. This base class is used as an interface toward the client of CiiOldbDataPointAsync.

Note that the members value, timestamp etc cannot be declared const because of the (move) assignment operator. That one we need to use this class directly with the circular buffer. TODO: Would it be better here to use the buffer with unique_ptr<OldbData>, to be able to declare the member fields const?

Constructor & Destructor Documentation

◆ OldbData() [1/4]

template<typename T>
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::OldbData ( elt::oldb::CiiOldbDpQuality quality)
inline

Ctor that takes only the quality data.

◆ OldbData() [2/4]

template<typename T>
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::OldbData ( std::optional< T > value,
std::optional< int64_t > timestamp,
std::optional< elt::oldb::CiiOldbDpQuality > quality )
inline

Ctor that takes all DP attributes.

◆ ~OldbData()

template<typename T>
virtual hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::~OldbData ( )
virtualdefault

Destructor.

◆ OldbData() [3/4]

template<typename T>
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::OldbData ( const OldbData & )
delete

◆ OldbData() [4/4]

template<typename T>
hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::OldbData ( OldbData && )
default

◆ ~CiiOldbDataPointAsync()

Member Function Documentation

◆ CiiOldbDataPointAsync()

hlcc::oldbmux::CiiOldbDataPointAsync< T >::CiiOldbDataPointAsync ( std::string name,
std::shared_ptr< elt::oldb::CiiOldbDataPoint< T > > delegate,
boost::asio::thread_pool & async_exec,
const log4cplus::Logger & logger,
std::size_t buffer_capacity = 1 )

Constructor.

◆ GetQuality()

template<typename T>
std::optional< elt::oldb::CiiOldbDpQuality > hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::GetQuality ( ) const
inline

◆ GetTimestamp()

template<typename T>
std::optional< int64_t > hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::GetTimestamp ( ) const
inline

◆ GetValue()

template<typename T>
std::optional< T > hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::GetValue ( ) const
inline

◆ operator=() [1/2]

template<typename T>
OldbData & hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::operator= ( const OldbData & )
delete

◆ operator=() [2/2]

template<typename T>
OldbData & hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::operator= ( OldbData && )
default

◆ ReadValue()

std::shared_ptr< elt::oldb::CiiOldbDpValue< T > > hlcc::oldbmux::CiiOldbDataPointAsync< T >::ReadValue ( bool check_bad_quality = true)

◆ SetQuality()

boost::future< typename CiiOldbDataPointAsync< T >::OldbData > hlcc::oldbmux::CiiOldbDataPointAsync< T >::SetQuality ( elt::oldb::CiiOldbDpQuality quality,
bool is_disable_publishing = false )

◆ SetTimestamp()

template<typename T>
void hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::SetTimestamp ( int64_t timestamp)
inline

◆ SetValue()

template<typename T>
void hlcc::oldbmux::CiiOldbDataPointAsync< T >::OldbData::SetValue ( T value)
inline

◆ WriteValue()

boost::future< typename CiiOldbDataPointAsync< T >::OldbData > hlcc::oldbmux::CiiOldbDataPointAsync< T >::WriteValue ( const T & value,
int64_t timestamp = elt::oldb::CiiOldbUtil::Now(),
elt::oldb::CiiOldbDpQuality quality = elt::oldb::CiiOldbDpQuality::OK,
bool is_disable_publishing = false )

Note that for using nested class CiiOldbDataPointAsync<T>::OldbData as a template parameter, the "typename" keyword has to be added. Somehow because OldbData depends on template parameter T only through its outer type CiiOldbDataPointAsync. See also upcoming C++ change http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0634r3.html


The documentation for this struct was generated from the following files: