akonadi
20 #include "collectionstatisticsjob.h"
22 #include "collection.h"
23 #include "collectionstatistics.h"
24 #include "imapparser_p.h"
29 using namespace Akonadi;
31 class Akonadi::CollectionStatisticsJobPrivate :
public JobPrivate
34 CollectionStatisticsJobPrivate( CollectionStatisticsJob *parent )
35 : JobPrivate( parent )
39 Collection mCollection;
40 CollectionStatistics mStatistics;
43 CollectionStatisticsJob::CollectionStatisticsJob(
const Collection &collection, QObject * parent )
44 :
Job( new CollectionStatisticsJobPrivate( this ), parent )
48 d->mCollection = collection;
51 CollectionStatisticsJob::~CollectionStatisticsJob()
55 void CollectionStatisticsJob::doStart( )
59 d->writeData( d->newTag() +
" STATUS " + QByteArray::number( d->mCollection.id() ) +
" (MESSAGES UNSEEN SIZE)\n" );
62 void CollectionStatisticsJob::doHandleResponse(
const QByteArray & tag,
const QByteArray & data )
68 int current = ImapParser::parseString( data, token );
69 if ( token ==
"STATUS" ) {
71 current = ImapParser::parseString( data, token, current );
73 QList<QByteArray> list;
74 current = ImapParser::parseParenthesizedList( data, list, current );
75 for (
int i = 0; i < list.count() - 1; i += 2 ) {
76 if ( list[i] ==
"MESSAGES" ) {
77 d->mStatistics.setCount( list[i+1].toLongLong() );
78 }
else if ( list[i] ==
"UNSEEN" ) {
79 d->mStatistics.setUnreadCount( list[i+1].toLongLong() );
80 }
else if ( list[i] ==
"SIZE" ) {
81 d->mStatistics.setSize( list[i+1].toLongLong() );
83 kDebug() <<
"Unknown STATUS response: " << list[i];
87 d->mCollection.setStatistics( d->mStatistics );
91 kDebug() <<
"Unhandled response: " << tag << data;
98 return d->mCollection;
105 return d->mStatistics;
108 #include "collectionstatisticsjob.moc"
This file is part of the KDE documentation.
Documentation copyright © 1996-2012 The KDE developers.
Generated on Mon Sep 24 2012 09:06:25 by
doxygen 1.8.1.1 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.