Project: finder, src: Document.cc
ドキュメントを構成し、DB に入れる
#include <cstddef>
#include <unistd.h>
#include "Document.h"
/**
* Document オブジェクトを file descriptor に書き込む
*/
void Document::writeObject(int fd) const {
// docid の書き込み
write(fd, &docid, sizeof(docid));
// bookmarks の書き込み
// bookmark の数
std::size_t sz = bookmarks.size();
write(fd, &sz, sizeof(sz));
// 各 bookmark の書き込み
for (std::set<int>::const_iterator i = bookmarks.begin(); i != bookmarks.end(); ++i) {
int bm = *i;
write(fd, &bm, sizeof(bm));
}
}
/**
* Document オブジェクトを file descriptor から読み込む
*/
void Document::readObject(int fd) {
// docid の読み込み
read(fd, &docid, sizeof(docid));
// bookmarks の読み込み
std::size_t sz;
read(fd, &sz, sizeof(sz));
for (std::size_t i = 0; i < sz; ++i) {
int bm;
read(fd, &bm, sizeof(bm));
add(bm);
}
}