| 720 | } |
| 721 | |
| 722 | std::string CreateModuleAad(const std::string& file_aad, int8_t module_type, |
| 723 | int16_t row_group_ordinal, int16_t column_ordinal, |
| 724 | int32_t page_ordinal) { |
| 725 | CheckPageOrdinal(page_ordinal); |
| 726 | const int16_t page_ordinal_short = static_cast<int16_t>(page_ordinal); |
| 727 | int8_t type_ordinal_bytes[1]; |
| 728 | type_ordinal_bytes[0] = module_type; |
| 729 | std::string type_ordinal_bytes_str(reinterpret_cast<const char*>(type_ordinal_bytes), |
| 730 | 1); |
| 731 | if (kFooter == module_type) { |
| 732 | std::string result = file_aad + type_ordinal_bytes_str; |
| 733 | return result; |
| 734 | } |
| 735 | std::string row_group_ordinal_bytes = ShortToBytesLe(row_group_ordinal); |
| 736 | std::string column_ordinal_bytes = ShortToBytesLe(column_ordinal); |
| 737 | if (kDataPage != module_type && kDataPageHeader != module_type) { |
| 738 | std::ostringstream out; |
| 739 | out << file_aad << type_ordinal_bytes_str << row_group_ordinal_bytes |
| 740 | << column_ordinal_bytes; |
| 741 | return out.str(); |
| 742 | } |
| 743 | std::string page_ordinal_bytes = ShortToBytesLe(page_ordinal_short); |
| 744 | std::ostringstream out; |
| 745 | out << file_aad << type_ordinal_bytes_str << row_group_ordinal_bytes |
| 746 | << column_ordinal_bytes << page_ordinal_bytes; |
| 747 | return out.str(); |
| 748 | } |
| 749 | |
| 750 | std::string CreateFooterAad(const std::string& aad_prefix_bytes) { |
| 751 | return CreateModuleAad(aad_prefix_bytes, kFooter, static_cast<int16_t>(-1), |
no test coverage detected