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);
  }
}