KIMAP2::ImapSet

Search for usage in LXR

#include <imapset.h>

Public Types

typedef qint64 Id
 

Public Member Functions

 ImapSet ()
 
 ImapSet (const ImapSet &other)
 
 ImapSet (Id begin, Id end)
 
 ImapSet (Id value)
 
 ~ImapSet ()
 
void add (const ImapInterval &interval)
 
void add (const QVector< Id > &values)
 
void add (Id value)
 
ImapInterval::List intervals () const
 
bool isEmpty () const
 
ImapSetoperator= (const ImapSet &other)
 
bool operator== (const ImapSet &other) const
 
void optimize ()
 
QByteArray toImapSequenceSet () const
 

Static Public Member Functions

static ImapSet fromImapSequenceSet (const QByteArray &sequence)
 

Detailed Description

Represents a set of natural numbers (1->∞) in a as compact as possible form.

Used to address Akonadi items via the IMAP protocol or in the database. This class is implicitly shared.

Definition at line 141 of file imapset.h.

Member Typedef Documentation

◆ Id

Describes the ids stored in the set.

Definition at line 147 of file imapset.h.

Constructor & Destructor Documentation

◆ ImapSet() [1/4]

ImapSet::ImapSet ( )

Constructs an empty set.

Definition at line 190 of file imapset.cpp.

◆ ImapSet() [2/4]

ImapSet::ImapSet ( Id begin,
Id end )

Constructs a set containing a single interval.

Definition at line 195 of file imapset.cpp.

◆ ImapSet() [3/4]

ImapSet::ImapSet ( Id value)
explicit

Constructs a set containing a single value.

Definition at line 201 of file imapset.cpp.

◆ ImapSet() [4/4]

ImapSet::ImapSet ( const ImapSet & other)

Copy constructor.

Definition at line 207 of file imapset.cpp.

◆ ~ImapSet()

ImapSet::~ImapSet ( )

Destructor.

Definition at line 212 of file imapset.cpp.

Member Function Documentation

◆ add() [1/3]

void ImapSet::add ( const ImapInterval & interval)

Adds the given ImapInterval to this set.

No interval merging is performed.

Parameters
intervalthe interval to add

Definition at line 267 of file imapset.cpp.

◆ add() [2/3]

void ImapSet::add ( const QVector< Id > & values)

Adds the given list of positive integer numbers to the set.

The list is sorted and split into as large as possible intervals. No interval merging is performed.

Parameters
valuesList of positive integer numbers in arbitrary order

Definition at line 244 of file imapset.cpp.

◆ add() [3/3]

void ImapSet::add ( Id value)

Adds a single positive integer numbers to the set.

The list is sorted and split into as large as possible intervals. No interval merging is performed.

Parameters
valueA positive integer number

Definition at line 239 of file imapset.cpp.

◆ fromImapSequenceSet()

ImapSet ImapSet::fromImapSequenceSet ( const QByteArray & sequence)
static

Return the set corresponding to the given IMAP-compatible QByteArray representation.

Definition at line 294 of file imapset.cpp.

◆ intervals()

ImapInterval::List ImapSet::intervals ( ) const

Returns the intervals this set consists of.

Definition at line 309 of file imapset.cpp.

◆ isEmpty()

bool ImapSet::isEmpty ( ) const

Returns true if this set doesn't contains any values.

Definition at line 314 of file imapset.cpp.

◆ operator=()

ImapSet & ImapSet::operator= ( const ImapSet & other)

Assignment operator.

Definition at line 216 of file imapset.cpp.

◆ operator==()

bool ImapSet::operator== ( const ImapSet & other) const

Comparison operator.

Definition at line 224 of file imapset.cpp.

◆ optimize()

void ImapSet::optimize ( )

Optimizes the ImapSet by sorting and merging overlapping intervals.

Normally you shouldn't need to call this method. KIMAP will make sure to opimize the ImapSet before serializing it to string and sending it to the IMAP server.

Definition at line 319 of file imapset.cpp.

◆ toImapSequenceSet()

QByteArray ImapSet::toImapSequenceSet ( ) const

Returns a IMAP-compatible QByteArray representation of this set.

Definition at line 272 of file imapset.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 1 2024 18:46:23 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.