| // Copyright 2014 Google Inc. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #ifndef CLD2_INTERNAL_CLD2_DYNAMIC_DATA_EXTRACTOR_H_ |
| #define CLD2_INTERNAL_CLD2_DYNAMIC_DATA_EXTRACTOR_H_ |
| |
| #include "cld2_dynamic_data.h" |
| #include "integral_types.h" |
| #include "cld2tablesummary.h" |
| #include "utf8statetable.h" |
| #include "scoreonescriptspan.h" |
| |
| namespace CLD2DynamicDataExtractor { |
| |
| // Enable or disable debugging; 0 to disable, 1 to enable |
| void setDebug(int debug); |
| |
| // Populates all the UTF8-related fields of the header, and returns the total |
| // space required within the binary blob to represent the non-primitive data. |
| void initUtf8Headers(CLD2DynamicData::FileHeader* header, |
| const CLD2::UTF8PropObj* utf8Object); |
| |
| // Populates all the AvgDeltaOctaScore-related fields of the header. |
| void initDeltaHeaders(CLD2DynamicData::FileHeader* header, |
| const CLD2::uint32 deltaLength); |
| |
| // Populates all fields of all table headers for the specified table summaries. |
| // Tables are laid out back-to-back in the order that they are specified in the |
| // input array of summaries, and the headers are filled in in the same order. |
| // IMPORTANT: The Supplement data structure must contain exactly one entry in |
| // indirectTableSizes for each CLD2TableSummary in the summaries parameter, |
| // in the same order. |
| void initTableHeaders(const CLD2::CLD2TableSummary** summaries, |
| const int numSummaries, |
| const CLD2DynamicData::Supplement* supplement, |
| CLD2DynamicData::TableHeader* tableSummaryHeaders); |
| |
| // Align all entries in the data block along boundaries that are multiples of |
| // the specified number of bytes. For example, to align everything along 64-bit |
| // boundaries, pass an alignment of 8 (bytes). |
| void alignAll(CLD2DynamicData::FileHeader* header, const int alignment); |
| |
| // Write the dynamic data file to disk. |
| void writeDataFile(const CLD2::ScoringTables* data, |
| const CLD2DynamicData::Supplement* supplement, |
| const char* fileName); |
| |
| } // End namespace CLD2DynamicDataExtractor |
| #endif // CLD2_INTERNAL_CLD2_DYNAMIC_DATA_EXTRACTOR_H_ |