| 554 | } |
| 555 | |
| 556 | class Version2Parser : public VersionParser { |
| 557 | public: |
| 558 | virtual ~Version2Parser() override; |
| 559 | |
| 560 | virtual uint64_t getVersion() const override { |
| 561 | return 2; |
| 562 | } |
| 563 | |
| 564 | /** |
| 565 | * Get the number of bytes |
| 566 | */ |
| 567 | virtual uint64_t getTimeSize() const override { |
| 568 | return 8; |
| 569 | } |
| 570 | |
| 571 | /** |
| 572 | * Parse the time at the given location. |
| 573 | */ |
| 574 | virtual int64_t parseTime(const unsigned char* ptr) const override { |
| 575 | return static_cast<int64_t>(decode32(ptr)) << 32 | decode32(ptr + 4); |
| 576 | } |
| 577 | |
| 578 | virtual std::string parseFutureString(const unsigned char* ptr, uint64_t offset, |
| 579 | uint64_t length) const override { |
| 580 | return std::string(reinterpret_cast<const char*>(ptr) + offset + 1, length - 2); |
| 581 | } |
| 582 | }; |
| 583 | |
| 584 | Version2Parser::~Version2Parser() { |
| 585 | // PASS |