|
Lightweight 0.20250904.0
|
This API represents a many-to-many relationship between two records through a third record. More...
#include <HasManyThrough.hpp>
Public Types | |
| using | ThroughRecord = ThroughRecordT |
| The record type of the "through" side of the relationship. | |
| using | ReferencedRecord = ReferencedRecordT |
| The record type of the "many" side of the relationship. | |
| using | ReferencedRecordList = std::vector< std::shared_ptr< ReferencedRecord > > |
| The list of records on the "many" side of the relationship. | |
| using | value_type = ReferencedRecord |
| using | iterator = typename ReferencedRecordList::iterator |
| using | const_iterator = typename ReferencedRecordList::const_iterator |
Public Member Functions | |
| ReferencedRecordList const & | All () const noexcept |
| Retrieves the list of loaded records. | |
| ReferencedRecordList & | All () noexcept |
| Retrieves the list of records as mutable reference. | |
| ReferencedRecordList & | Emplace (ReferencedRecordList &&records) noexcept |
| Emplaces the given list of records into this relationship. | |
| std::size_t | Count () const |
| Retrieves the number of records in this relationship. | |
| std::size_t | IsEmpty () const |
| Checks if this relationship is empty. | |
| ReferencedRecord const & | At (std::size_t index) const |
| Retrieves the record at the given index. | |
| ReferencedRecord & | At (std::size_t index) |
| Retrieves the record at the given index. | |
| ReferencedRecord const & | operator[] (std::size_t index) const |
| Retrieves the record at the given index. | |
| ReferencedRecord & | operator[] (std::size_t index) |
| Retrieves the record at the given index. | |
| iterator | begin () noexcept |
| iterator | end () noexcept |
| const_iterator | begin () const noexcept |
| const_iterator | end () const noexcept |
| std::weak_ordering | operator<=> (HasManyThrough const &other) const noexcept=default |
| void | SetAutoLoader (Loader loader) noexcept |
| Used internally to configure on-demand loading of the records. | |
| void | Reload () |
| Reloads the records from the database. | |
| template<typename Callable > | |
| void | Each (Callable const &callable) |
| Iterates over all records in this relationship. | |
This API represents a many-to-many relationship between two records through a third record.
Definition at line 23 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::ThroughRecord = ThroughRecordT |
The record type of the "through" side of the relationship.
Definition at line 27 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecord = ReferencedRecordT |
The record type of the "many" side of the relationship.
Definition at line 30 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecordList = std::vector<std::shared_ptr<ReferencedRecord> > |
The list of records on the "many" side of the relationship.
Definition at line 33 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::value_type = ReferencedRecord |
Definition at line 35 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::iterator = typename ReferencedRecordList::iterator |
Definition at line 36 of file HasManyThrough.hpp.
| using Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::const_iterator = typename ReferencedRecordList::const_iterator |
Definition at line 37 of file HasManyThrough.hpp.
|
noexcept |
Retrieves the list of loaded records.
Definition at line 152 of file HasManyThrough.hpp.
Referenced by Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::Each().
|
noexcept |
Retrieves the list of records as mutable reference.
Definition at line 162 of file HasManyThrough.hpp.
|
noexcept |
Emplaces the given list of records into this relationship.
Definition at line 170 of file HasManyThrough.hpp.
| std::size_t Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::Count | ( | ) | const |
Retrieves the number of records in this relationship.
Definition at line 179 of file HasManyThrough.hpp.
| std::size_t Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::IsEmpty | ( | ) | const |
Checks if this relationship is empty.
Definition at line 191 of file HasManyThrough.hpp.
| HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecord const & Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::At | ( | std::size_t | index | ) | const |
Retrieves the record at the given index.
| index | The index of the record to retrieve. |
Definition at line 199 of file HasManyThrough.hpp.
| HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecord & Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::At | ( | std::size_t | index | ) |
Retrieves the record at the given index.
| index | The index of the record to retrieve. |
Definition at line 205 of file HasManyThrough.hpp.
| HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecord const & Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::operator[] | ( | std::size_t | index | ) | const |
Retrieves the record at the given index.
| index | The index of the record to retrieve. |
Definition at line 214 of file HasManyThrough.hpp.
| HasManyThrough< ReferencedRecordT, ThroughRecordT >::ReferencedRecord & Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::operator[] | ( | std::size_t | index | ) |
Retrieves the record at the given index.
| index | The index of the record to retrieve. |
Definition at line 220 of file HasManyThrough.hpp.
|
noexcept |
Definition at line 228 of file HasManyThrough.hpp.
|
noexcept |
Definition at line 234 of file HasManyThrough.hpp.
|
noexcept |
Definition at line 240 of file HasManyThrough.hpp.
|
noexcept |
Definition at line 247 of file HasManyThrough.hpp.
|
inlinenoexcept |
Used internally to configure on-demand loading of the records.
Definition at line 97 of file HasManyThrough.hpp.
Referenced by Lightweight::DataMapper::ConfigureRelationAutoLoading().
|
inline |
Reloads the records from the database.
Definition at line 103 of file HasManyThrough.hpp.
|
inline |
Iterates over all records in this relationship.
| callable | The callable to invoke for each record. |
Definition at line 116 of file HasManyThrough.hpp.
References Lightweight::HasManyThrough< ReferencedRecordT, ThroughRecordT >::All().