swift
|
Value object encapsulating a list of distributors. More...
Public Member Functions | |
CDistributorList () | |
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. More... | |
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. | |
![]() | |
CSequence ()=default | |
Default constructor. | |
CSequence (std::initializer_list< CDistributor > il) | |
Initializer list constructor. | |
CSequence (QList< CDistributor > &&list) | |
By QList of type T. | |
CSequence (const QList< CDistributor > &list) | |
By QList of type T. | |
CSequence (It first, It last) | |
Range constructor. | |
CSequence (const CSequence &other)=default | |
Copy constructor. | |
CSequence (CSequence &&other)=default | |
Move constructor. | |
CSequence & | operator= (const CSequence &other)=default |
Copy assignment. | |
CSequence & | operator= (CSequence &&other)=default |
Move assignment. | |
~CSequence ()=default | |
Destructor. | |
QVector< CDistributor > | toVector () const & |
Copy of internal vector. | |
QVector< CDistributor > | toVector () && |
Copy of internal vector. | |
iterator | begin () |
Returns iterator at the beginning of the sequence. | |
const_iterator | begin () const |
Returns const 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 | end () const |
Returns const 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 | rbegin () const |
Returns const 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 | rend () const |
Returns const 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. | |
const_reference | operator[] (size_type index) const |
Access an element by its index. | |
reference | front () |
Access the first element. | |
const_reference | front () const |
Access the first element. | |
const_reference | frontOrDefault () const |
Access the first element, or a default-initialized value if the sequence is empty. | |
value_type | frontOrDefault (value_type def) const |
Access the first element, or a default-initialized value if the sequence is empty. | |
reference | back () |
Access the last element. | |
const_reference | back () const |
Access the last element. | |
const_reference | backOrDefault () const |
Access the last element, or a default value if the sequence is empty. | |
value_type | backOrDefault (value_type def) 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. More... | |
iterator | insert (iterator before, CDistributor &&value) |
Moves an element into the sequence. More... | |
void | push_back (const CDistributor &value) |
Appends an element at the end of the sequence. | |
void | push_back (CDistributor &&value) |
Move-appends an element at the end of the sequence. | |
void | push_back (const CSequence &other) |
Appends all elements from another sequence at the end of this sequence. | |
void | push_back (CSequence &&other) |
Appends all elements from another sequence at the end of this sequence. This version moves elements instead of copying. | |
void | push_back (const CRange< I > &range) |
Appends all elements from a range at the end of this sequence. | |
void | push_front (const CDistributor &value) |
Insert as first element. | |
void | push_front (const CSequence &other) |
Inserts all elements from another sequence at the beginning of this sequence. | |
void | push_front (CDistributor &&value) |
Move-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. | |
CSequence | join (const CRange< I > &range) const |
Concatenates a sequence and a range 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. More... | |
iterator | erase (iterator it1, iterator it2) |
Remove the range of elements between two iterators. More... | |
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). | |
const_iterator | find (const CDistributor &object) const |
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. More... | |
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. More... | |
int | applyIf (K1 key1, V1 value1, const VariantMap &newValues, bool skipEqualValues=false) |
Modify by applying a value map to each element matching a particular key/value pair. More... | |
int | remove (const CDistributor &object) |
Remove all elements equal to the given object, if it is contained. More... | |
int | removeIf (Predicate p) |
Remove elements for which a given predicate returns true. More... | |
int | removeIf (K0 k0, V0 v0, KeysValues... keysValues) |
Remove elements matching some particular key/value pair(s). More... | |
int | removeIfIn (const CSequence &other) |
Remove all elements if they are in other. More... | |
void | removeIfInSubset (const CSequence &other) |
Remove all elements if they are in other. More... | |
int | replace (const CDistributor &original, const CDistributor &replacement) |
Replace elements matching the given element with a replacement. More... | |
int | replaceIf (Predicate p, const CDistributor &replacement) |
Replace elements for which a given predicate returns true. More... | |
int | replaceIf (K1 key1, V1 value1, const CDistributor &replacement) |
Replace elements matching a particular key/value pair. More... | |
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 | replaceOrAdd (const CDistributor &replacement) |
Replace elements matching the given element. If there is no match, push the new element on the end. | |
void | replaceOrAdd (const CSequence< CDistributor > &replacements) |
Replace or add given elements. | |
void | replaceOrAdd (K1 key1, V1 value1, const CDistributor &replacement) |
Replace elements matching a particular key/value pair. If there is no match, push the new element on the end. More... | |
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). More... | |
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). More... | |
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). More... | |
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). More... | |
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. More... | |
void | unmarshalFromDataStream (QDataStream &stream) |
Unmarshal a value from a QDataStream. More... | |
![]() | |
template<template< class > class Other> | |
auto | to () const |
Return a new container of a different type, containing the same elements as this one. More... | |
template<template< class > class Other, class T > | |
Other< T > | to (Other< T > other) const |
Return a new container of a different type, containing the same elements as this one. More... | |
template<class K0 , class V0 , class... KeysValues> | |
int | removeIf (K0 k0, V0 v0, KeysValues... keysValues) |
Remove elements matching some particular key/value pair(s). More... | |
QJsonObject | toJson () const |
Cast to JSON object. More... | |
QString | toJsonString (QJsonDocument::JsonFormat format=QJsonDocument::Indented) const |
Convenience function JSON as string. | |
void | convertFromJson (const QJsonObject &json) |
Assign from JSON object. More... | |
void | convertFromJson (const QString &jsonString, bool acceptCacheFormat=false) |
Assign from JSON object string. | |
CStatusMessage | convertFromJsonNoThrow (const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix) |
Call convertFromJson, catch any CJsonException that is thrown and return it as CStatusMessage. | |
CStatusMessage | convertFromJsonNoThrow (const QString &jsonString, 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. More... | |
QStringList | toStringList (bool i18n=false) const |
To string list. | |
void | marshallToDbus (QDBusArgument &argument) const |
Marshall without begin/endStructure, for when composed within another object. More... | |
void | unmarshallFromDbus (const QDBusArgument &argument) |
Unmarshall without begin/endStructure, for when composed within another object. More... | |
![]() | |
template<class F > | |
auto | transform (F function) const |
Return a new container generated by applying some transformation function to all elements of this one. | |
template<class Predicate > | |
auto | findBy (Predicate p) const |
Return a copy containing only those elements for which a given predicate returns true. | |
template<class K0 , class V0 , class... KeysValues> | |
auto | findBy (K0 k0, V0 v0, KeysValues... keysValues) const |
Return a copy containing only those elements matching some particular key/value pair(s). More... | |
template<class Predicate > | |
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. | |
template<class K , class V > | |
const auto & | findFirstBy (K key, V value) const |
Return a reference to the first element matching some particular key/value pair(s). Undefined if there is none. | |
template<class Predicate , class Value > | |
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. | |
template<class Predicate > | |
auto | findFirstByOrDefault (Predicate p) const |
Return a copy of the first element for which a given predicate returns true, or a default value if there is none. | |
template<class K , class V , class Value > | |
auto | findFirstByOrDefault (K key, V value, const Value &def) const |
Return a copy of the first element matching some particular key/value pair(s), or a default value if there is none. | |
template<class T , class K , class V > | |
auto | findFirstByOrDefault (K T::*key, V value) const |
Return a copy of the first element matching some particular key/value pair(s), or a default value if there is none. | |
template<class Predicate > | |
bool | containsBy (Predicate p) const |
Return true if there is an element for which a given predicate returns true. | |
template<class T > | |
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. | |
template<class K0 , class V0 , class... KeysValues> | |
bool | contains (K0 k0, V0 v0, KeysValues... keysValues) const |
Return a copy containing only those elements matching some particular key/value pair(s). More... | |
template<class T , class Predicate > | |
bool | equalsBy (const T &other, Predicate c) const |
Return true if this container equals another container according to the given element equality predicate. | |
template<class T , class Key0 , class... Keys> | |
bool | equalsByKeys (const T &other, Key0 k0, Keys... keys) const |
Return true if this container equals another container, considering only the given element members. | |
template<class T > | |
T | randomElement () const |
Pick one random element. | |
Derived | randomElements (int n) const |
Copy n elements from the container at random. | |
Derived | sampleElements (int n) const |
Copy n elements from the container, randomly selected but evenly distributed. | |
![]() | |
int | getMetaTypeId () const |
Returns the Qt meta type ID of this object. More... | |
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. | |
![]() | |
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. | |
![]() | |
CIcons::IconIndex | toIcon () const |
As icon, not implemented by all classes. | |
![]() | |
CDistributor | findByKey (QString key, const CDistributor ¬Found=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. | |
int | countWithValidDbKey () const |
Number of entries with valid DB key. | |
bool | containsAnyObjectWithoutKey () const |
Any object without key? | |
bool | containsDbKey (QString key) const |
Contains object with key? | |
![]() | |
CONTAINER | findBefore (const QDateTime &dateTime) const |
List of objects before dateTime (older) | |
CONTAINER | findBefore (qint64 msSinceEpoch) const |
List of objects before msSinceEpoch (older) | |
OBJ | findObjectBeforeOrDefault (qint64 msSinceEpoch) const |
Object before timestamp or default (older) | |
CONTAINER | findBeforeAndRemove (qint64 msSinceEpoch) |
Get objects before msSinceEpoch and remove those. | |
CONTAINER | findBeforeNowMinusOffset (qint64 msOffset) const |
List of objects before now - offset. | |
CONTAINER | findAfter (const QDateTime &dateTime) const |
List of objects after dateTime (newer) | |
CONTAINER | findAfter (qint64 msSinceEpoch) const |
List of objects after msSinceEpoch (newer) | |
CONTAINER | findAfterNowMinusOffset (qint64 msOffset) const |
List of objects before now - offset. | |
OBJ | findObjectAfterOrDefault (qint64 msSinceEpoch) const |
List of objects after msSinceEpoch (newer) | |
CONTAINER | findInvalidTimestamps () const |
Objects without valid timestamp. | |
OBJ | 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. | |
OBJ | latestObject () const |
Latest object. | |
OBJ | oldestObject () const |
Latest object. | |
int | removeBefore (const QDateTime &dateTime) |
Remove objects with timestamp before dateTime. | |
int | removeBefore (qint64 msSinceEpoch) |
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 OBJ &value, bool replaceSameTimestamp=true, int maxElements=-1) |
Insert as first element by keeping maxElements and the latest first. | |
void | push_backIncreaseTimestamp (const OBJ &newObject) |
Push back and increase the timestamp at least by +1ms if equal to last element. More... | |
void | push_backOverrideTimestamp (const OBJ &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 OBJ &newObject) |
Replace if an object has the same timestamp. | |
bool | isSortedLatestLast () const |
Is completely sorted: latest last. More... | |
bool | isSortedLatestFirst () const |
Is completely sorted: latest last. More... | |
void | addMsecs (qint64 msToAdd) |
Adds a time to all values. | |
void | setSortHint (HintTimestampSort hint) |
Set the hint. | |
MillisecondsMinMaxMean | getTimestampDifferenceMinMaxMean () const |
Difference of timestamp values. More... | |
![]() | |
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. | |
![]() | |
int | getMetaTypeId () const |
Returns the Qt meta type ID of this object. More... | |
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 | |
![]() | |
typedef CDistributor | key_type |
STL compatibility. | |
typedef CDistributor | value_type |
STL compatilibty. | |
typedef CDistributor & | reference |
STL compatibility. | |
typedef const CDistributor & | const_reference |
STL compatibility. | |
typedef CDistributor * | pointer |
STL compatibility. | |
typedef const CDistributor * | const_pointer |
STL compatibility. | |
typedef QVector< CDistributor >::const_iterator | const_iterator |
STL compatibility. | |
typedef QVector< CDistributor >::iterator | iterator |
STL compatibility. | |
typedef QVector< CDistributor >::const_reverse_iterator | const_reverse_iterator |
STL compatibility. | |
typedef QVector< CDistributor >::reverse_iterator | reverse_iterator |
STL compatibility. | |
typedef ptrdiff_t | difference_type |
STL compatibility. | |
typedef int | size_type |
STL compatibility. | |
![]() | |
enum | HintTimestampSort { NoTimestampSortHint , TimestampLatestFirst , TimestampLatestLast } |
Hint if the list is sorted. | |
![]() | |
static Derived | fromJson (const QJsonObject &json) |
Static version of convertFromJson. | |
static Derived | fromJson (const QString &jsonString, bool acceptCacheJson=false) |
Static version of convertFromJson. | |
static Derived | fromJsonNoThrow (const QString &jsonString, bool acceptCacheJson, bool &success, QString &errMsg) |
Static version of convertFromJson. | |
![]() | |
static void | registerMetadata () |
Register metadata. | |
![]() | |
static CDistributorList | fromMultipleJsonFormats (const QJsonObject &jsonObject) |
From multiple JSON formats. More... | |
static CDistributorList | fromMultipleJsonFormats (const QString &jsonString) |
From multiple JSON formats. More... | |
static CDistributorList | fromDatabaseJson (const QJsonArray &array) |
From DB JSON with default prefixes. More... | |
static CDistributorList | fromDatabaseJson (const QJsonArray &array, const QString &prefix) |
From DB JSON. More... | |
![]() | |
static void | registerMetadata () |
Register metadata. | |
![]() | |
int | getMetaTypeId () const |
Returns the Qt meta type ID of this object. More... | |
![]() | |
IDatastoreObjectList ()=default | |
Constructor. | |
![]() | |
ITimestampObjectList ()=default | |
Constructor. | |
const CONTAINER & | container () const |
Container. | |
CONTAINER & | container () |
Container. | |
![]() | |
IOrderableList ()=default | |
Constructor. | |
const CDistributorList & | container () const |
Container. | |
CDistributorList & | container () |
Container. | |
![]() | |
template<typename T , typename U > | |
static bool | equalPointers (const T *a, const U *b) |
Efficiently compare addresses of two objects. Return false if types are not compatible. | |
![]() | |
HintTimestampSort | m_tsSortHint = NoTimestampSortHint |
sort hint | |
Value object encapsulating a list of distributors.
Definition at line 28 of file distributorlist.h.
CDistributor swift::misc::simulation::CDistributorList::findByModelData | ( | const CAircraftModel & | model | ) | const |
Find by model string.
Definition at line 29 of file distributorlist.cpp.