13 #ifndef MODIFIEDASSETSMANAGER_H
14 #define MODIFIEDASSETSMANAGER_H
18 #include "AssetWriter.h"
27 const std::map<std::string, std::set<const T*> >&
origins()
const {
return myOrigins; }
29 std::vector<std::string>
files()
const {
30 std::vector<std::string>
files;
32 files.push_back(origin.first);
39 if (file.second.count(asset) > 0) {
48 it.second.erase(asset);
50 myOrigins[filename.c_str()].insert(asset);
58 if (file.second.count(a) > 0) {
59 write(file.first, file.second);
74 std::vector<T *> assets;
75 std::copy_if(
myDirty.cbegin(),
myDirty.cend(), std::back_inserter(assets), [
this] (
const auto &dirty) {
76 return this->originOf(dirty).empty();
82 void write(
const std::string &filename, std::set<const T*> assets) {
83 auto buf = stringbuffer_new();
84 for (
auto asset = assets.begin(); asset != assets.end(); asset++) {
88 size_t length = stringbuffer_length(buf);
89 char *data = stringbuffer_finish(buf);
91 QFile out(QString(filename.data()));
92 out.open(QIODevice::WriteOnly);
93 out.write(data, length);
99 std::map<std::string, std::set<const T*> >
myOrigins;