bool SQLCache::childMailboxesFresh(const QString &mailbox) const { queryChildMailboxesFresh.bindValue(0, mailboxName(mailbox)); if (! queryChildMailboxesFresh.exec()) { emitError(QObject::tr("Query queryChildMailboxesFresh failed"), queryChildMailboxesFresh); return false; } return queryChildMailboxesFresh.first(); }
void SQLCache::setChildMailboxes(const QString &mailbox, const QList<MailboxMetadata> &data) { #ifdef CACHE_DEBUG qDebug() << "Setting child mailboxes for" << mailbox; #endif touchingDB(); QVariantList mailboxFields, parentFields, separatorFields, flagsFelds; Q_FOREACH(const MailboxMetadata& item, data) { mailboxFields << item.mailbox; parentFields << mailboxName(mailbox); separatorFields << item.separator; QByteArray buf; QDataStream stream(&buf, QIODevice::ReadWrite); stream.setVersion(streamVersion); stream << item.flags; flagsFelds << buf; }
class Mailbox * Command::mailbox() { UString n = mailboxName(); if ( n.isEmpty() ) return 0; Mailbox * m = Mailbox::obtain( n, false ); if ( !m ) { error( No, "No such mailbox: " + n.ascii() ); return 0; } if ( m->deleted() ) { error( No, "Mailbox deleted: " + n.ascii() ); return 0; } if ( !d->mailbox ) d->mailbox = m; return m; }
QList<MailboxMetadata> SQLCache::childMailboxes(const QString &mailbox) const { QList<MailboxMetadata> res; queryChildMailboxes.bindValue(0, mailboxName(mailbox)); if (! queryChildMailboxes.exec()) { emitError(QObject::tr("Query queryChildMailboxes failed"), queryChildMailboxes); return res; } while (queryChildMailboxes.next()) { MailboxMetadata item; item.mailbox = queryChildMailboxes.value(0).toString(); item.separator = queryChildMailboxes.value(1).toString(); QDataStream stream(queryChildMailboxes.value(2).toByteArray()); stream.setVersion(streamVersion); stream >> item.flags; if (stream.status() != QDataStream::Ok) { emitError(QObject::tr("Corrupt data when reading child items for mailbox %1, line %2").arg(mailbox, item.mailbox)); return QList<MailboxMetadata>(); } res << item; } return res; }
#ifdef CACHE_DEBUG qDebug() << "Setting child mailboxes for" << mailbox; #endif touchingDB(); QVariantList mailboxFields, parentFields, separatorFields, flagsFelds; Q_FOREACH(const MailboxMetadata& item, data) { mailboxFields << item.mailbox; parentFields << mailboxName(mailbox); separatorFields << item.separator; QByteArray buf; QDataStream stream(&buf, QIODevice::ReadWrite); stream.setVersion(streamVersion); stream << item.flags; flagsFelds << buf; } queryRemoveChildMailboxes.bindValue(0, mailboxName(mailbox)); if (!queryRemoveChildMailboxes.exec()) { emitError(QObject::tr("Query queryRemoveChildMailboxes failed"), queryRemoveChildMailboxes); return; } querySetChildMailboxes.bindValue(0, mailboxFields); querySetChildMailboxes.bindValue(1, parentFields); querySetChildMailboxes.bindValue(2, separatorFields); querySetChildMailboxes.bindValue(3, flagsFelds); if (! querySetChildMailboxes.execBatch()) { emitError(QObject::tr("Query querySetChildMailboxes failed"), querySetChildMailboxes); return; } } SyncState SQLCache::mailboxSyncState(const QString &mailbox) const
Mailbox * User::mailbox( const UString & name ) const { return Mailbox::find( mailboxName( name ) ); }