| 460 | } |
| 461 | |
| 462 | void StringHasher::Save(Base::Writer& writer) const |
| 463 | { |
| 464 | |
| 465 | std::size_t count = _hashes->SaveAll ? _hashes->size() : this->count(); |
| 466 | |
| 467 | writer.Stream() << writer.ind() << "<StringHasher saveall=\"" << _hashes->SaveAll |
| 468 | << "\" threshold=\"" << _hashes->Threshold << "\""; |
| 469 | |
| 470 | if (count == 0U) { |
| 471 | writer.Stream() << " count=\"0\"></StringHasher>\n"; |
| 472 | return; |
| 473 | } |
| 474 | |
| 475 | writer.Stream() << " count=\"0\" new=\"1\"/>\n"; |
| 476 | |
| 477 | writer.Stream() << writer.ind() << "<StringHasher2 "; |
| 478 | if (!_filename.empty()) { |
| 479 | writer.Stream() << " file=\"" << writer.addFile((_filename + ".txt").c_str(), this) |
| 480 | << "\"/>\n"; |
| 481 | return; |
| 482 | } |
| 483 | |
| 484 | writer.Stream() << " count=\"" << count << "\">\n"; |
| 485 | saveStream(writer.beginCharStream() << '\n'); |
| 486 | writer.endCharStream() << '\n'; |
| 487 | writer.Stream() << writer.ind() << "</StringHasher2>\n"; |
| 488 | } |
| 489 | |
| 490 | void StringHasher::SaveDocFile(Base::Writer& writer) const |
| 491 | { |