
Zitat von
TheDodger
Ahhh, eine Fehlinterpretation meinerseits ...
Sowas kann sich echt fix rächen
Leider scheint auch ein insert() nicht so wie gewünscht zu funktionieren (jedenfalls, so, wie ich es gerade mache) ...
Cache.h:
Code:
class RequestCache {
public:
RequestCache() { m_file = "" ; m_data = ""; }
void setFile( QString f ) { m_file = f; }
void setData( QByteArray d ) { m_data = d; }
QByteArray data() { return m_data; }
private:
QString m_file;
QByteArray m_data;
};
class RIPCache
: public QObject,
public ErrorHandler {
public:
RIPCache();
~RIPCache();
void insert( QString file, QByteArray d );
bool inCache( QString );
QByteArray fromCache( QString f );
private:
QCache<QString, RequestCache> m_cache;
RequestCache* r_cache;
};
Cache.cpp
Code:
RIPCache::RIPCache() {
r_cache = new RequestCache();
QCache<QString, RequestCache> m_cache(500000);
}
RIPCache::~RIPCache() {}
void RIPCache::insert( QString f, QByteArray d ) {
r_cache->setFile( f );
r_cache->setData( d );
Debug( QString( " size bevore '%1'" ).arg( m_cache.size() ).toAscii() );
m_cache.insert( f, r_cache );
Debug( QString( " size after '%1'" ).arg( m_cache.size() ).toAscii() );
}
Kurzauszüge des aktuellen Codes.
So bald ich eine 2. Datei in den Cache legen will, bekomme ich einen SegFault und das gesamte Gebilde stürtzt ab. :-(
Vielleicht sieht jemand von euch auf den ersten Blick meinen Denkfehler?
Gruß!
B.
Lesezeichen