/*
  Copyright (c) 2011 Volker Krause <vkrause@kde.org>

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version.

  This library is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
  License for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; see the file COPYING.LIB.  If not, write to the
  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  02110-1301, USA.
*/

#include "callbacknepomukresourceretriever.h"

using namespace MessageList;

CallbackNepomukResourceRetriever::CallbackNepomukResourceRetriever(QObject* parent): AsyncNepomukResourceRetriever(parent)
{
}

void CallbackNepomukResourceRetriever::requestResource(Core::MessageItemPrivate* item, const QUrl& url)
{
  m_pendingCallbacks.insert( url, item );
  AsyncNepomukResourceRetriever::requestResource( url,
    QVector<QUrl>() << Nepomuk::Resource::tagUri() << Nepomuk::Resource::annotationUri() << Nepomuk::Resource::descriptionUri() );
}

void CallbackNepomukResourceRetriever::cancelCallbackRequest(const QUrl& url)
{
  m_pendingCallbacks.remove( url );
  AsyncNepomukResourceRetriever::cancelRequest( url );
}

void CallbackNepomukResourceRetriever::resourceAvailable(const QUrl& url, const Nepomuk::Resource& resource)
{
  Core::MessageItemPrivate* item = m_pendingCallbacks.take( url );
  if ( item )
    item->resourceReceived( resource );
}

#include "callbacknepomukresourceretriever.moc"
