Project: finder, src: DocumentList.cc
ドキュメントの塊をファイルに読み出し・書き込みする
#include "DocumentList.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <cstddef>
void DocumentList::writeObject(int fd) const {
// list 長
std::size_t sz = this->size();
write(fd, &sz, sizeof(sz));
// 要素の書き込み
for (const_iterator i = this->begin(); i != this->end(); ++i) {
(*i).writeObject(fd);
}
}
void DocumentList::readObject(int fd) {
// list 長
std::size_t sz;
read(fd, &sz, sizeof(sz));
// 要素の読み込み
this->clear();
for (int i = 0; i < sz; ++i) {
Document doc;
doc.readObject(fd);
this->push_back(doc);
}
}