view common/FeatureFileIndex.h @ 46:c8b777862198

* Fixes to cache lookup for audio file features
author Chris Cannam
date Tue, 18 May 2010 17:40:04 +0100
parents 0033259c6772
children
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

#ifndef _CLASSICAL_DATA_FEATURE_FILE_INDEX_H_
#define _CLASSICAL_DATA_FEATURE_FILE_INDEX_H_

#include "Objects.h"

#include <dataquay/BasicStore.h>
#include <dataquay/TransactionalStore.h>

#include <QMutex>

namespace ClassicalData {

class FeatureFileIndex : public QObject
{
    Q_OBJECT

public:
    static FeatureFileIndex *getInstance();
    
    FeatureFileIndex();
    ~FeatureFileIndex();

    void loadFor(AudioFile *, Dataquay::Store *);

public slots:
    void featureFileAdded(QString filepath);

private:
    QMutex m_mutex;
    QString m_indexFileName;
    Dataquay::BasicStore *m_bs;
    Dataquay::TransactionalStore *m_index;
    QString getIndexFileName();
    QString getFeatureDirectoryName();
    bool loadFor(Dataquay::Uri canonicalUri, Dataquay::Uri actingUri,
                 QString hash, Dataquay::Store *);
    void updateIndex();
    void index(QUrl);
};

}

#endif