void FileList::Append(const wxString& file, const LineNumberList& bmklns) { m_files += file + wxT("<"); BOOST_FOREACH (size_t ln, bmklns) m_files << ln << wxT("<"); m_files += wxT("|"); m_filevec.push_back(FileDesc(file, bmklns)); }
void FileList::Init(const wxString& files) { m_files = files; wxStringTokenizer tkzfiledescs(files, wxT("|")); while (tkzfiledescs.HasMoreTokens()) { wxStringTokenizer tkz(tkzfiledescs.GetNextToken(), wxT("<")); wxString file = tkz.GetNextToken(); LineNumberList bmklns; while (tkz.HasMoreTokens()) { unsigned long ln = 0; if (tkz.GetNextToken().ToULong(&ln)) bmklns.push_back((size_t)ln); } m_filevec.push_back(FileDesc(file, bmklns)); } }
void writeImage(const StorageKey &location, const StorageImageSaved &image, bool overwrite) { if (!_working()) return; qint32 size = _storageImageSize(image.data.size()); StorageMap::const_iterator i = _storageMap.constFind(location); if (i == _storageMap.cend()) { i = _storageMap.insert(location, FileDesc(genKey(), size)); _storageFilesSize += size; _mapChanged = true; _writeMap(); } else if (!overwrite) { return; } EncryptedDescriptor data(sizeof(quint64) * 2 + sizeof(quint32) + sizeof(quint32) + image.data.size()); data.stream << quint64(location.first) << quint64(location.second) << quint32(image.type) << image.data; FileWriteDescriptor file(i.value().first, false); file.writeEncrypted(data); if (i.value().second != size) { _storageFilesSize += size; _storageFilesSize -= i.value().second; _storageMap[location].second = size; } }
EventLoop::EventLoop() : quit_(true) , wakeupChannel_(this, FileDesc(eventfd(0, EFD_NONBLOCK | FD_CLOEXEC))) , logger_(log::Logger::get().getLogger("EventLoop")) { wakeupChannel_.enableRead(); }