swift
Public Types | Public Member Functions | Friends | List of all members
swift::misc::CCollection< T > Class Template Reference

Generic ordered container with value semantics. More...

Inheritance diagram for swift::misc::CCollection< T >:
[legend]

Public Types

using key_type = T
 STL compatibility.
 
using value_type = T
 STL compatibility.
 
using reference = T &
 STL compatibility.
 
using const_reference = const T &
 STL compatibility.
 
using pointer = T *
 STL compatibility.
 
using const_pointer = const T *
 STL compatibility.
 
using const_iterator = typename QOrderedSet< T >::const_iterator
 STL compatibility.
 
using iterator = const_iterator
 STL compatibility.
 
using difference_type = ptrdiff_t
 STL compatibility.
 
using size_type = int
 STL compatibility.
 

Public Member Functions

 CCollection ()=default
 Default constructor.
 
 CCollection (std::initializer_list< T > il)
 Initializer list constructor.
 
 CCollection (const CCollection &other)=default
 Copy constructor.
 
 CCollection (const QList< T > &list)
 Constructor from QList.
 
 CCollection (CCollection &&other)=default
 Move constructor.
 
CCollectionoperator= (const CCollection &other)=default
 Copy assignment.
 
CCollectionoperator= (CCollection &&other)=default
 Move assignment.
 
 ~CCollection ()=default
 Destructor.
 
iterator begin ()
 Returns iterator at the beginning of the collection.
 
const_iterator begin () const
 Returns iterator at the beginning of the collection.
 
const_iterator cbegin () const
 Returns iterator at the beginning of the collection.
 
iterator end ()
 Returns iterator one past the end of the collection.
 
const_iterator end () const
 Returns const iterator one past the end of the collection.
 
const_iterator cend () const
 Returns const iterator one past the end of the collection.
 
void swap (CCollection &other) noexcept
 Swap this collection with another.
 
size_type size () const
 Returns number of elements in the collection.
 
bool empty () const
 Returns true if the collection is empty.
 
bool isEmpty () const
 Synonym for empty.
 
void clear ()
 Removes all elements in the collection.
 
iterator insert (const_iterator hint, const T &value)
 For compatibility with std::inserter. More...
 
iterator insert (const_iterator hint, T &&value)
 For compatibility with std::inserter. More...
 
iterator insert (const T &value)
 Inserts an element into the collection. More...
 
iterator insert (T &&value)
 Moves an element into the collection. More...
 
void insert (const CCollection &other)
 Inserts all elements from another collection into this collection.
 
void insert (CCollection &&other)
 Inserts all elements from another collection into this collection. This version moves elements instead of copying.
 
template<typename I >
void insert (const CRange< I > &range)
 Appends all elements from a range at the end of this collection.
 
iterator push_back (const T &value)
 Synonym for insert. More...
 
iterator push_back (T &&value)
 Synonym for insert. More...
 
void push_back (const CCollection &other)
 Synonym for insert.
 
void push_back (CCollection &&other)
 Synonym for insert.
 
template<typename I >
void push_back (const CRange< I > &range)
 Synonym for insert.
 
template<class C >
CCollection makeUnion (const C &other) const
 Returns a collection which is the union of this collection and another container.
 
template<class C >
CCollection intersection (const C &other) const
 Returns a collection which is the intersection of this collection and another.
 
template<class C >
CCollection difference (const C &other) const
 Returns a collection which contains all the elements from this collection which are not in the other collection.
 
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 T &value)
 Efficient find method using the find of the implementation container. Typically O(log n). More...
 
const_iterator find (const T &value) const
 Efficient find method using the find of the implementation container. Typically O(log n). More...
 
void remove (const T &object)
 Efficient remove using the find and erase of the implementation container. Typically O(log n). More...
 
void remove (const CCollection &other)
 Removes from this collection all of the elements of another collection. More...
 
template<class Predicate >
int removeIf (Predicate p)
 Remove elements for which a given predicate returns true. 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...
 
QList< T > toQList () const
 Convert to a QList.
 
void marshalToDataStream (QDataStream &stream) const
 Marshal a value to a QDataStream. More...
 
void unmarshalFromDataStream (QDataStream &stream)
 Unmarshal a value from a QDataStream. More...
 
- Public Member Functions inherited from swift::misc::CContainerBase< CCollection< T > >
auto to () const
 Return a new container of a different type, containing the same elements as this one. More...
 
Other< T > to (Other< T > other) const
 Return a new container of a different type, containing the same elements as this one. More...
 
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...
 
- Public Member Functions inherited from swift::misc::CRangeBase< Derived >
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 >
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.
 
- Public Member Functions inherited from swift::misc::mixin::MetaType< Derived >
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.
 
- Public Member Functions inherited from swift::misc::mixin::String< Derived >
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< CCollection< T > >
CIcons::IconIndex toIcon () const
 As icon, not implemented by all classes.
 

Friends

bool operator== (const CCollection &a, const CCollection &b)
 Test for equality.
 
bool operator!= (const CCollection &a, const CCollection &b)
 Test for inequality.
 

Additional Inherited Members

- Static Public Member Functions inherited from swift::misc::CContainerBase< CCollection< T > >
static CCollection< T > fromJson (const QJsonObject &json)
 Static version of convertFromJson.
 
static CCollection< T > fromJson (const QString &jsonString, bool acceptCacheJson=false)
 Static version of convertFromJson.
 
static CCollection< T > fromJsonNoThrow (const QString &jsonString, bool acceptCacheJson, bool &success, QString &errMsg)
 Static version of convertFromJson.
 
- Static Public Member Functions inherited from swift::misc::mixin::MetaType< Derived >
static void registerMetadata ()
 Register metadata.
 
- Protected Member Functions inherited from swift::misc::CContainerBase< CCollection< T > >
int getMetaTypeId () const
 Returns the Qt meta type ID of this object. More...
 
- Static Protected Member Functions inherited from swift::misc::CRangeBase< Derived >
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.
 

Detailed Description

template<class T>
class swift::misc::CCollection< T >

Generic ordered container with value semantics.

Template Parameters
Tthe type of elements contained.

Definition at line 103 of file collection.h.

Member Function Documentation

◆ erase() [1/2]

template<class T >
iterator swift::misc::CCollection< T >::erase ( iterator  it1,
iterator  it2 
)
inline

Remove the range of elements between two iterators.

Returns
An iterator to the position of the next element after the one removed.

Definition at line 291 of file collection.h.

◆ erase() [2/2]

template<class T >
iterator swift::misc::CCollection< T >::erase ( iterator  pos)
inline

Remove the element pointed to by the given iterator.

Returns
An iterator to the position of the next element after the one removed.

Definition at line 287 of file collection.h.

◆ find() [1/2]

template<class T >
iterator swift::misc::CCollection< T >::find ( const T &  value)
inline

Efficient find method using the find of the implementation container. Typically O(log n).

Returns
An iterator to the position of the found element, or the end iterator if not found.

Definition at line 299 of file collection.h.

◆ find() [2/2]

template<class T >
const_iterator swift::misc::CCollection< T >::find ( const T &  value) const
inline

Efficient find method using the find of the implementation container. Typically O(log n).

Returns
An iterator to the position of the found element, or the end iterator if not found.

Definition at line 303 of file collection.h.

◆ insert() [1/4]

template<class T >
iterator swift::misc::CCollection< T >::insert ( const T &  value)
inline

Inserts an element into the collection.

Returns
An iterator to the position where value was inserted.

Definition at line 216 of file collection.h.

◆ insert() [2/4]

template<class T >
iterator swift::misc::CCollection< T >::insert ( const_iterator  hint,
const T &  value 
)
inline

For compatibility with std::inserter.

Parameters
hintIgnored.
valueThe value to insert.

Definition at line 199 of file collection.h.

◆ insert() [3/4]

template<class T >
iterator swift::misc::CCollection< T >::insert ( const_iterator  hint,
T &&  value 
)
inline

For compatibility with std::inserter.

Parameters
hintIgnored.
valueThe value to move in.

Definition at line 208 of file collection.h.

◆ insert() [4/4]

template<class T >
iterator swift::misc::CCollection< T >::insert ( T &&  value)
inline

Moves an element into the collection.

Returns
An iterator to the position where value was inserted.

Definition at line 220 of file collection.h.

◆ marshalToDataStream()

template<class T >
void swift::misc::CCollection< T >::marshalToDataStream ( QDataStream &  stream) const
inline

Marshal a value to a QDataStream.

Definition at line 357 of file collection.h.

◆ push_back() [1/2]

template<class T >
iterator swift::misc::CCollection< T >::push_back ( const T &  value)
inline

Synonym for insert.

Returns
An iterator to the position where value was inserted.

Definition at line 238 of file collection.h.

◆ push_back() [2/2]

template<class T >
iterator swift::misc::CCollection< T >::push_back ( T &&  value)
inline

Synonym for insert.

Returns
An iterator to the position where value was inserted.

Definition at line 242 of file collection.h.

◆ remove() [1/2]

template<class T >
void swift::misc::CCollection< T >::remove ( const CCollection< T > &  other)
inline

Removes from this collection all of the elements of another collection.

Precondition
This sequence must be initialized.

Definition at line 315 of file collection.h.

◆ remove() [2/2]

template<class T >
void swift::misc::CCollection< T >::remove ( const T &  object)
inline

Efficient remove using the find and erase of the implementation container. Typically O(log n).

Precondition
The sequence must be initialized.

Definition at line 307 of file collection.h.

◆ removeIf() [1/2]

template<class T >
template<class K0 , class V0 , class... KeysValues>
int swift::misc::CCollection< T >::removeIf ( K0  k0,
V0  v0,
KeysValues...  keysValues 
)
inline

Remove elements matching some particular key/value pair(s).

Parameters
k0A pointer to a member function of T.
v0A value to compare against the value returned by k0.
keysValuesZero or more additional pairs of { pointer to member function of T, value to compare it against }.
Returns
The number of elements removed.

Definition at line 338 of file collection.h.

◆ removeIf() [2/2]

template<class T >
template<class Predicate >
int swift::misc::CCollection< T >::removeIf ( Predicate  p)
inline

Remove elements for which a given predicate returns true.

Precondition
The collection must be initialized.
Returns
The number of elements removed.

Definition at line 321 of file collection.h.

◆ unmarshalFromDataStream()

template<class T >
void swift::misc::CCollection< T >::unmarshalFromDataStream ( QDataStream &  stream)
inline

Unmarshal a value from a QDataStream.

Definition at line 360 of file collection.h.


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