radio/lib/wModel/file/file.h

47 lines
1.1 KiB
C++

#ifndef FILE_H
#define FILE_H
/**
* @todo write docs
*/
#include <wModel/model.h>
#include <wType/blob.h>
#include <QtCore/QMimeDatabase>
namespace M {
class File: public Model {
protected:
File(W::Blob* p_file, const W::Address& addr, QObject* parent = 0);
public:
~File();
void set(const W::Object & value) override;
void set(W::Object * value) override;
M::Model::ModelType getType() const override;
static const M::Model::ModelType type = file;
static File* create(W::Blob* blob, const W::Address& addr, QObject* parent = 0);
protected:
virtual void initAdditional(const W::String& p_mime);
void h_subscribe(const W::Event & ev) override;
handler(get);
handler(getAdditional);
handler(getSlice);
protected:
W::Vocabulary additional;
W::Blob* file;
static QMimeDatabase mimeDB;
static const std::map<QString, M::Model::ModelType> mimeMap;
};
}
#endif // FILE_H