swift
Loading...
Searching...
No Matches
swift::misc::simulation::CDistributorList Class Reference

Value object encapsulating a list of distributors. More...

#include <distributorlist.h>

Inheritance diagram for swift::misc::simulation::CDistributorList:
[legend]

Public Member Functions

 CDistributorList ()=default
 Default constructor.
 CDistributorList (const CSequence< CDistributor > &other)
 Construct from a base class object.
CDistributor findByKeyOrAlias (const QString &keyOrAlias) const
 Find by id or alias.
CDistributor findByModelData (const CAircraftModel &model) const
 Find by model string.
CDistributorList findFsFamilyStandard () const
 Find the FS family standard distributors.
CDistributor smartDistributorSelector (const CDistributor &distributorPattern) const
 Best match by given pattern.
CDistributor smartDistributorSelector (const CDistributor &distributorPattern, const CAircraftModel &model) const
 Best match by given pattern.
bool matchesAnyKeyOrAlias (const QString &keyOrAlias) const
 At least is matching key or alias.
QStringList getDbKeysAndAliases (bool sort) const
 All DB keys and aliases.
CDistributorList matchesSimulator (const CSimulatorInfo &simulator) const
 Find for given simulator.
CDistributorList matchesAnyFsFamily () const
 Find all for all FS simulators.
bool isCompletelyFromDb () const
 All data from DB?
int removeIfNotLoadedFromDb ()
 Remove distributors not from DB.
 CSequence ()=default
 Default constructor.
 CSequence (std::initializer_list< T > il)
 Initializer list constructor.
 CSequence (QList< T > &&list)
 By QList of type T.
 CSequence (const QList< T > &list)
 By QList of type T.
template<typename It>
 CSequence (It first, It last)
 Range constructor.
 CSequence (const CSequence &other)=default
 Copy constructor.
 CSequence (CSequence &&other)=default
 Move constructor.
Public Member Functions inherited from swift::misc::CSequence< CDistributor >
 CSequence ()=default
 Default constructor.
CSequence & operator= (const CSequence &other)=default
 Copy assignment.
 ~CSequence ()=default
 Destructor.
QVector< CDistributor > toVector () const &
 Copy of internal vector.
iterator begin ()
 Returns iterator at the beginning of the sequence.
const_iterator cbegin () const
 Returns const iterator at the beginning of the sequence.
iterator end ()
 Returns iterator one past the end of the sequence.
const_iterator cend () const
 Returns const iterator one past the end of the sequence.
reverse_iterator rbegin ()
 Returns iterator at the beginning of the reversed sequence.
const_reverse_iterator crbegin () const
 Returns const iterator at the beginning of the reversed sequence.
reverse_iterator rend ()
 Returns iterator at the end of the reversed sequence.
const_reverse_iterator crend () const
 Returns const iterator at the end of the reversed sequence.
void swap (CSequence &other) noexcept
 Swap this sequence with another.
reference operator[] (size_type index)
 Access an element by its index.
reference front ()
 Access the first element.
const_reference frontOrDefault () const
 Access the first element, or a default-initialized value if the sequence is empty.
reference back ()
 Access the last element.
const_reference backOrDefault () const
 Access the last element, or a default value if the sequence is empty.
size_type size () const
 Returns number of elements in the sequence.
int sizeInt () const
 Avoid compiler warnings when using with int.
QString sizeString () const
 Convenience function.
bool empty () const
 Returns true if the sequence is empty.
bool isEmpty () const
 Synonym for empty.
void clear ()
 Removes all elements in the sequence.
void truncate (size_type maxSize)
 Changes the size of the sequence, if it is bigger than the given size.
iterator insert (iterator before, const CDistributor &value)
 Inserts an element into the sequence.
void push_back (const CDistributor &value)
 Appends an element at the end of the sequence.
void push_front (const CDistributor &value)
 Insert as first element.
void push_frontMaxElements (const CDistributor &value, int maxElements)
 Insert as first element by keep maxElements.
void push_backMaxElements (const CDistributor &value, int maxElements)
 Insert as last element by keep maxElements.
CSequence join (const CSequence &other) const
 Concatenates two sequences and returns the result.
void pop_back ()
 Removes an element at the end of the sequence.
void pop_front ()
 Removes an element at the front of the sequence.
iterator erase (iterator pos)
 Remove the element pointed to by the given iterator.
iterator find (const CDistributor &object)
 Return an iterator to the first element equal to the given object, or the end iterator if not found. O(n).
CSequence findBy (Predicate p) const
 Return a copy containing only those elements for which a given predicate returns true.
int applyIf (Predicate p, const VariantMap &newValues, bool skipEqualValues=false)
 Modify by applying a value map to each element for which a given predicate returns true.
int remove (const CDistributor &object)
 Remove all elements equal to the given object, if it is contained.
int removeIf (Predicate p)
 Remove elements for which a given predicate returns true.
int removeIfIn (const CSequence &other)
 Remove all elements if they are in other.
void removeIfInSubset (const CSequence &other)
 Remove all elements if they are in other.
int replace (const CDistributor &original, const CDistributor &replacement)
 Replace elements matching the given element with a replacement.
int replaceIf (Predicate p, const CDistributor &replacement)
 Replace elements for which a given predicate returns true.
void replaceOrAdd (const CDistributor &original, const CDistributor &replacement)
 Replace elements matching the given element. If there is no match, push the new element on the end.
void reverse ()
 In-place reverse.
Q_REQUIRED_RESULT CSequence reversed () const
 Reversed order.
void sort (Predicate p)
 In-place sort by a given comparator predicate.
void sortBy (K1 key1, Keys... keys)
 In-place sort by some particular key(s).
Q_REQUIRED_RESULT CSequence sorted (Predicate p) const
 Return a copy sorted by a given comparator predicate.
CSequence sortedBy (K1 key1, Keys... keys) const
 Return a copy sorted by some particular key(s).
void partiallySort (size_type n, Predicate p)
 In-place move the smallest n elements to the beginning and sort them.
void partiallySortBy (size_type n, K1 key1, Keys... keys)
 In-place partially sort by some particular key(s).
Q_REQUIRED_RESULT CSequence partiallySorted (size_type n, Predicate p) const
 Return a copy with the smallest n elements at the beginning and sorted.
CSequence partiallySortedBy (size_type n, K1 key1, Keys... keys) const
 Return a copy partially sorted by some particular key(s).
bool unorderedEqualsByKeys (const U &other, Key0 k0, Keys... keys) const
 Return true if this container equals another container, considering only the given element members. Order of elements is not considered; this is implemented using a transient sort, so don't overuse.
auto separate (Predicate p) const -> QMap< decltype(p(std::declval< CDistributor >())), CSequence >
 Split up the sequence into subsequences for which the given predicate returns the same value.
auto separateBy (Key k) const -> QMap< decltype(std::invoke(k, std::declval< CDistributor >())), CSequence >
 Split up the sequence into subsequences of elements having the same value for the given key.
void marshalToDataStream (QDataStream &stream) const
 Marshal a value to a QDataStream.
void unmarshalFromDataStream (QDataStream &stream)
 Unmarshal a value from a QDataStream.
Public Member Functions inherited from swift::misc::CContainerBase< CSequence< CDistributor > >
auto to () const
 Return a new container of a different type, containing the same elements as this one.
int removeIf (K0 k0, V0 v0, KeysValues... keysValues)
 Remove elements matching some particular key/value pair(s).
QJsonObject toJson () const
 Cast to JSON object.
QString toJsonString (QJsonDocument::JsonFormat format=QJsonDocument::Indented) const
 Convenience function JSON as string.
void convertFromJson (const QJsonObject &json)
 Assign from JSON object.
CStatusMessage convertFromJsonNoThrow (const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix)
 Call convertFromJson, catch any CJsonException that is thrown and return it as CStatusMessage.
QString convertToQString (bool i18n=false) const
 Cast as QString.
QStringList toStringList (bool i18n=false) const
 To string list.
void marshallToDbus (QDBusArgument &argument) const
 Marshall without begin/endStructure, for when composed within another object.
void unmarshallFromDbus (const QDBusArgument &argument)
 Unmarshall without begin/endStructure, for when composed within another object.
Public Member Functions inherited from swift::misc::CRangeBase< CSequence< CDistributor > >
auto transform (F function) const
 Return a new container generated by applying some transformation function to all elements of this one.
auto findBy (Predicate p) const
 Return a copy containing only those elements for which a given predicate returns true.
const auto & findFirstBy (Predicate p) const
 Return a reference to the first element for which a given predicate returns true. Undefined if there is none.
auto findFirstByOrDefault (Predicate p, const Value &def) const
 Return a copy of the first element for which a given predicate returns true, or a default value if there is none.
bool containsBy (Predicate p) const
 Return true if there is an element for which a given predicate returns true.
bool contains (const T &object) const
 Return true if there is an element equal to given object. Uses the most efficient implementation available in the derived container.
bool equalsBy (const T &other, Predicate c) const
 Return true if this container equals another container according to the given element equality predicate.
bool equalsByKeys (const T &other, Key0 k0, Keys... keys) const
 Return true if this container equals another container, considering only the given element members.
T randomElement () const
 Pick one random element.
CSequence< CDistributor > randomElements (int n) const
 Copy n elements from the container at random.
CSequence< CDistributor > sampleElements (int n) const
 Copy n elements from the container, randomly selected but evenly distributed.
Public Member Functions inherited from swift::misc::mixin::MetaType< CSequence< CDistributor > >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
QString getClassName () const
 Class name.
bool isA (int metaTypeId) const
 Returns true if this object is an instance of the class with the given meta type ID, or one of its subclasses.
Public Member Functions inherited from swift::misc::mixin::String< CSequence< CDistributor > >
QString toQString (bool i18n=false) const
 Cast as QString.
std::string toStdString (bool i18n=false) const
 To std string.
QString stringForStreaming () const
 String for streaming operators.
Public Member Functions inherited from swift::misc::mixin::Icon< CSequence< CDistributor > >
CIcons::CIcons::StandardIconUnknown16 toIcon () const
 As icon, not implemented by all classes.
Public Member Functions inherited from swift::misc::db::IDatastoreObjectList< CDistributor, CDistributorList, QString >
CDistributor findByKey (QString key, const CDistributor &notFound=CDistributor()) const
 Object with key, notFound otherwise.
CDistributorList findByKeys (const QSet< QString > &keys) const
 Object with key, notFound otherwise.
CDistributorList findObjectsWithDbKey () const
 Objects with DB key.
CDistributorList findObjectsWithoutDbKey () const
 Objects without DB key.
CDistributor maxKeyObject () const
 Object with max.key.
void sortByKey ()
 Sort by timestamp.
QSet< QString > toDbKeySet () const
 All keys as set.
QMap< QString, CDistributor > toDbKeyValueMap () const
 As map with DB key/object.
QSet< QString > toDbKeyStringSet () const
 All keys as string set (also integer keys will be converted to string).
QString dbKeysAsString (const QString &separator) const
 The DB keys as string.
QString getMaxKey (bool *ok=nullptr) const
 Max.key value (making sense with integer key).
int removeObjectsWithKeys (const QSet< QString > &keys)
 Remove objects with keys.
int removeObjectsWithoutDbKey ()
 Remove objects without key.
int replaceOrAddObjectsByKey (const CDistributorList &container)
 Update or insert data (based on DB key).
QDateTime latestDbTimestamp () const
 Latest DB timestamp (means objects with DB key).
QDateTime oldestDbTimestamp () const
 Latest DB timestamp (means objects with DB key).
int countWithValidDbKey (bool withKey) const
 Number of objects with/without key.
bool containsAnyObjectWithoutKey () const
 Any object without key?
bool containsDbKey (QString key) const
 Contains object with key?
Public Member Functions inherited from swift::misc::ITimestampObjectList< CDistributor, CDistributorList >
CDistributorList findBefore (const QDateTime &dateTime) const
 List of objects before dateTime (older).
CDistributor findObjectBeforeOrDefault (qint64 msSinceEpoch) const
 Object before timestamp or default (older).
CDistributorList findBeforeAndRemove (qint64 msSinceEpoch)
 Get objects before msSinceEpoch and remove those.
CDistributorList findBeforeNowMinusOffset (qint64 msOffset) const
 List of objects before now - offset.
CDistributorList findAfter (const QDateTime &dateTime) const
 List of objects after dateTime (newer).
CDistributorList findAfterNowMinusOffset (qint64 msOffset) const
 List of objects before now - offset.
CDistributor findObjectAfterOrDefault (qint64 msSinceEpoch) const
 List of objects after msSinceEpoch (newer).
CDistributorList findInvalidTimestamps () const
 Objects without valid timestamp.
CDistributor findClosestTimeDistance (qint64 msSinceEpoch) const
 Find closest (or default).
bool hasInvalidTimestamps () const
 Has invalid timestamp.
void setCurrentUtcTime ()
 Set all timestamps to now.
void setUtcTime (qint64 msSinceEpoch)
 Set all timestamps to given time.
void setInvalidTimestampsToCurrentUtcTime ()
 Set invalid timestamps to now.
QDateTime latestTimestamp () const
 Latest timestamp.
qint64 latestTimestampMsecsSinceEpoch () const
 Latest timestamp.
QDateTime oldestTimestamp () const
 Oldest timestamp.
qint64 oldestTimestampMsecsSinceEpoch () const
 Oldest timestamp.
CDistributor latestObject () const
 Latest object.
CDistributor oldestObject () const
 Latest object.
int removeBefore (const QDateTime &dateTime)
 Remove objects with timestamp before dateTime.
int removeOlderThanNowMinusOffset (qint64 offsetMs)
 Remove objects older than seconds.
void sortLatestFirst ()
 Sort by timestamp.
void sortOldestFirst ()
 Sort by timestamp.
void push_frontKeepLatestFirst (const CDistributor &value, bool replaceSameTimestamp=true, int maxElements=-1)
 Insert as first element by keeping maxElements and the latest first.
void push_backIncreaseTimestamp (const CDistributor &newObject)
 Push back and increase the timestamp at least by +1ms if equal to last element.
void push_backOverrideTimestamp (const CDistributor &newObject, qint64 newTsMsSinceEpoch)
 Push back, but set new timestamp.
void setNewTimestampStartingLast (qint64 startTimeStampMs, qint64 deltaTimeMs)
 Set new timestamps starting with the last element.
int replaceIfSameTimestamp (const CDistributor &newObject)
 Replace if an object has the same timestamp.
bool isSortedLatestLast () const
 Is completely sorted: latest last.
bool isSortedLatestFirst () const
 Is completely sorted: latest last.
void addMsecs (qint64 msToAdd)
 Adds a time to all values.
void setSortHint (HintTimestampSort hint)
 Set the hint.
MillisecondsMinMaxMean getTimestampDifferenceMinMaxMean () const
 Difference of timestamp values.
Public Member Functions inherited from swift::misc::IOrderableList< CDistributor, CDistributorList >
void sortAscendingByOrder ()
 Sort ascending.
void sortDescendingByOrder ()
 Sort descending.
void resetOrder (int offset=0)
 Set order member to current order.
bool needsOrder () const
 All order values set or missing some?
QList< int > orderValues () const
 All order values IOrderable::order.
CDistributorList withoutItemsOfSameOrder (const CDistributorList &items) const
 Items with order will not be included.
void removeItemsWithSameOrder (const CDistributorList &items)
 Remove the items based on their order IOrderable::order.
void moveTo (const CDistributorList &items, int targetOrder)
 Move items to given order.
void freezeOrder ()
 Current order of list will be new order values.
void freezeOrderReverse ()
 Current reverse order of list will be new order values.
CDistributor minOrderOrDefault () const
 Object with min.order or default.
CDistributor maxOrderOrDefault () const
 Object with max.order or default.
Public Member Functions inherited from swift::misc::mixin::MetaType< CDistributorList >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
QString getClassName () const
 Class name.
bool isA (int metaTypeId) const
 Returns true if this object is an instance of the class with the given meta type ID, or one of its subclasses.

Additional Inherited Members

Public Types inherited from swift::misc::CSequence< CDistributor >
using key_type
 STL compatibility.
using value_type
 STL compatilibty.
using reference
 STL compatibility.
using const_reference
 STL compatibility.
using pointer
 STL compatibility.
using const_pointer
 STL compatibility.
using const_iterator
 STL compatibility.
using iterator
 STL compatibility.
using const_reverse_iterator
 STL compatibility.
using reverse_iterator
 STL compatibility.
using difference_type
 STL compatibility.
using size_type
 STL compatibility.
Public Types inherited from swift::misc::ITimestampObjectList< CDistributor, CDistributorList >
enum  HintTimestampSort
 Hint if the list is sorted. More...
Static Public Member Functions inherited from swift::misc::CContainerBase< CSequence< CDistributor > >
static CSequence< CDistributor > fromJson (const QJsonObject &json)
 Static version of convertFromJson.
static CSequence< CDistributor > fromJsonNoThrow (const QString &jsonString, bool acceptCacheJson, bool &success, QString &errMsg)
 Static version of convertFromJson.
Static Public Member Functions inherited from swift::misc::mixin::MetaType< CSequence< CDistributor > >
static void registerMetadata ()
 Register metadata.
Static Public Member Functions inherited from swift::misc::db::IDatastoreObjectList< CDistributor, CDistributorList, QString >
static CDistributorList fromMultipleJsonFormats (const QJsonObject &jsonObject)
 From multiple JSON formats.
static CDistributorList fromDatabaseJson (const QJsonArray &array)
 From DB JSON with default prefixes.
Static Public Member Functions inherited from swift::misc::mixin::MetaType< CDistributorList >
static void registerMetadata ()
 Register metadata.
Protected Member Functions inherited from swift::misc::CContainerBase< CSequence< CDistributor > >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object.
Protected Member Functions inherited from swift::misc::db::IDatastoreObjectList< CDistributor, CDistributorList, QString >
 IDatastoreObjectList ()=default
 Constructor.
Protected Member Functions inherited from swift::misc::ITimestampObjectList< CDistributor, CDistributorList >
 ITimestampObjectList ()=default
 Constructor.
const CDistributorList & container () const
 Container.
Protected Member Functions inherited from swift::misc::IOrderableList< CDistributor, CDistributorList >
 IOrderableList ()=default
 Constructor.
const CDistributorList & container () const
 Container.
Static Protected Member Functions inherited from swift::misc::CRangeBase< CSequence< CDistributor > >
static bool equalPointers (const T *a, const U *b)
 Efficiently compare addresses of two objects. Return false if types are not compatible.
Protected Attributes inherited from swift::misc::ITimestampObjectList< CDistributor, CDistributorList >
HintTimestampSort m_tsSortHint
 sort hint

Detailed Description

Value object encapsulating a list of distributors.

Definition at line 28 of file distributorlist.h.

Constructor & Destructor Documentation

◆ CDistributorList()

swift::misc::simulation::CDistributorList::CDistributorList ( const CSequence< CDistributor > & other)

Construct from a base class object.

Definition at line 16 of file distributorlist.cpp.

Member Function Documentation

◆ CSequence() [1/4]

swift::misc::CSequence< T >::CSequence ( const QList< T > & list)
inline

By QList of type T.

Definition at line 134 of file sequence.h.

◆ CSequence() [2/4]

template<typename It>
swift::misc::CSequence< T >::CSequence ( It first,
It last )
inline

Range constructor.

Definition at line 138 of file sequence.h.

◆ CSequence() [3/4]

swift::misc::CSequence< T >::CSequence ( QList< T > && list)
inline

By QList of type T.

Definition at line 131 of file sequence.h.

◆ CSequence() [4/4]

swift::misc::CSequence< T >::CSequence ( std::initializer_list< T > il)
inline

Initializer list constructor.

Definition at line 128 of file sequence.h.

◆ findByKeyOrAlias()

CDistributor swift::misc::simulation::CDistributorList::findByKeyOrAlias ( const QString & keyOrAlias) const

Find by id or alias.

Definition at line 18 of file distributorlist.cpp.

◆ findByModelData()

CDistributor swift::misc::simulation::CDistributorList::findByModelData ( const CAircraftModel & model) const

Find by model string.

Remarks
model strings may have a pattern which makes it impossible to find the distributor

Definition at line 34 of file distributorlist.cpp.

◆ findFsFamilyStandard()

CDistributorList swift::misc::simulation::CDistributorList::findFsFamilyStandard ( ) const

Find the FS family standard distributors.

Definition at line 65 of file distributorlist.cpp.

◆ getDbKeysAndAliases()

QStringList swift::misc::simulation::CDistributorList::getDbKeysAndAliases ( bool sort) const

All DB keys and aliases.

Definition at line 110 of file distributorlist.cpp.

◆ isCompletelyFromDb()

bool swift::misc::simulation::CDistributorList::isCompletelyFromDb ( ) const

All data from DB?

Definition at line 162 of file distributorlist.cpp.

◆ matchesAnyFsFamily()

CDistributorList swift::misc::simulation::CDistributorList::matchesAnyFsFamily ( ) const

Find all for all FS simulators.

Definition at line 157 of file distributorlist.cpp.

◆ matchesAnyKeyOrAlias()

bool swift::misc::simulation::CDistributorList::matchesAnyKeyOrAlias ( const QString & keyOrAlias) const

At least is matching key or alias.

Definition at line 104 of file distributorlist.cpp.

◆ matchesSimulator()

CDistributorList swift::misc::simulation::CDistributorList::matchesSimulator ( const CSimulatorInfo & simulator) const

Find for given simulator.

Definition at line 140 of file distributorlist.cpp.

◆ removeIfNotLoadedFromDb()

int swift::misc::simulation::CDistributorList::removeIfNotLoadedFromDb ( )

Remove distributors not from DB.

Definition at line 164 of file distributorlist.cpp.

◆ smartDistributorSelector() [1/2]

CDistributor swift::misc::simulation::CDistributorList::smartDistributorSelector ( const CDistributor & distributorPattern) const

Best match by given pattern.

Definition at line 70 of file distributorlist.cpp.

◆ smartDistributorSelector() [2/2]

CDistributor swift::misc::simulation::CDistributorList::smartDistributorSelector ( const CDistributor & distributorPattern,
const CAircraftModel & model ) const

Best match by given pattern.

Definition at line 92 of file distributorlist.cpp.


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