Go to the documentation of this file.
22 #ifndef DATAPACK_INTERFACE_H
23 #define DATAPACK_INTERFACE_H
28 #include <string_view>
30 #include <type_traits>
64 DataPackIdentifier(
const std::string &_name,
const std::string &_engineName,
const std::string &_type);
67 :
Name(std::forward<std::string>(_name)),
68 EngineName(std::forward<std::string>(_engineName)),
69 Type(std::forward<std::string>(_type))
101 template<
class DEV_ID_T>
103 : _id(std::forward<DEV_ID_T>(
id)){
104 static_assert(std::is_same_v<std::remove_reference_t<DEV_ID_T>,
const DataPackIdentifier> || std::is_same_v<
DataPackIdentifier, std::remove_reference_t<DEV_ID_T> >,
"Parameter DEV_ID_T must be type DataPackIdentifier or DataPackIdentifier&");
105 static_assert(std::is_same_v<std::remove_reference_t<DEV_ID_T>,
DataPackIdentifier> || std::is_same_v<
const DataPackIdentifier, std::remove_reference_t<DEV_ID_T> >,
"Parameter DEV_ID_T must be type DataPackIdentifier or DataPackIdentifier&");
111 const std::string &
name()
const;
114 const std::string &
type()
const;
170 bool _isEmpty =
true;
176 mutable bool _isUpdated =
true;
197 bool operator() (
const std::shared_ptr<const DataPackInterface> & lhs,
const std::shared_ptr<const DataPackInterface> & rhs)
const
199 return lhs->id().Name < rhs->id().Name ||
200 (lhs->id().Name == rhs->id().Name &&
201 lhs->id().EngineName < rhs->id().EngineName);
206 return lhs->id().Name < rhs.
Name ||
207 (lhs->id().Name == rhs.
Name &&
213 return lhs.
Name < rhs->id().Name ||
214 (lhs.
Name == rhs->id().Name &&
224 #endif // DATAPACK_INTERFACE_H
std::vector< std::shared_ptr< const DataPackInterface > > datapacks_vector_t
Definition: datapack_interface.h:220
void setEngineName(const std::string &engineName)
Definition: datapack_interface.cpp:59
DataPackIdentifier()=default
std::set< std::shared_ptr< const DataPackInterface >, DataPackPointerComparator > datapacks_set_t
Definition: datapack_interface.h:219
bool operator()(const std::shared_ptr< const DataPackInterface > &lhs, const std::shared_ptr< const DataPackInterface > &rhs) const
Definition: datapack_interface.h:197
std::string Type
DataPack Type.
Definition: datapack_interface.h:54
DataPackInterface::const_shared_ptr DataPackInterfaceConstSharedPtr
Definition: datapack_interface.h:180
void setName(const std::string &name)
Definition: datapack_interface.cpp:39
DataPackInterface()=default
const DataPackIdentifier & id() const
Definition: datapack_interface.cpp:64
std::shared_ptr< const DataPackInterface > const_shared_ptr
Definition: ptr_templates.h:32
std::true_type is_transparent
Definition: datapack_interface.h:195
virtual ~DataPackInterface()=default
void setID(const DataPackIdentifier &id)
Definition: datapack_interface.cpp:69
DataPackInterface(DEV_ID_T &&id)
Definition: datapack_interface.h:102
DataPackIdentifier(std::string &&_name, std::string &&_engineName, std::string &&_type)
Definition: datapack_interface.h:66
std::string Name
DataPack Name. Used by simulator to identify source/sink of datapack.
Definition: datapack_interface.h:44
DataPackInterface::shared_ptr DataPackInterfaceSharedPtr
Definition: datapack_interface.h:179
std::set< DataPackIdentifier > datapack_identifiers_set_t
Definition: datapack_interface.h:221
DataPackInterface & operator=(const DataPackInterface &)=default
bool operator==(const DataPackIdentifier &rhs) const
Definition: datapack_interface.h:72
virtual DataPackInterface * clone() const
Virtual clone method to support polymorphic copy.
Definition: datapack_interface.h:126
Definition: ptr_templates.h:28
bool isEmpty() const
Indicates if the datapack contains any data aside from datapack ID.
Definition: datapack_interface.cpp:74
Custom comparator functor used by sets of DataPack shared pointers.
Definition: datapack_interface.h:191
bool operator<(const DataPackIdentifier &rhs) const
Definition: datapack_interface.h:78
std::shared_ptr< DataPackInterface > shared_ptr
Definition: ptr_templates.h:31
Identifies a single datapack.
Definition: datapack_interface.h:38
bool isUpdated() const
Indicates if the DataPack was created or received on the current simulation iteration.
Definition: datapack_interface.cpp:84
DataPackInterface(const std::string &name, const std::string &engineName, const std::string &type, bool isUpdated)
Definition: datapack_interface.h:155
Interface to datapacks.
Definition: datapack_interface.h:89
const std::string & name() const
Definition: datapack_interface.cpp:34
void resetIsUpdated() const
Sets the isUpdated flag to false TODO This method is obviously non-const, it will be changed in NRRPL...
Definition: datapack_interface.cpp:89
DataPackIdentifier & operator=(const DataPackIdentifier &)=default
void setType(const std::string &type)
Definition: datapack_interface.cpp:49
std::string EngineName
Corresponding engine.
Definition: datapack_interface.h:49
void setIsEmpty(bool value)
Definition: datapack_interface.cpp:79
const std::string & type() const
Definition: datapack_interface.cpp:44
const std::string & engineName() const
Definition: datapack_interface.cpp:54