123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * Copyright 2021 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 FLATBUFFERS_ANNOTATED_BINARY_TEXT_GEN_H_
- #define FLATBUFFERS_ANNOTATED_BINARY_TEXT_GEN_H_
- #include <map>
- #include <memory>
- #include <string>
- #include "binary_annotator.h"
- namespace flatbuffers {
- class AnnotatedBinaryTextGenerator {
- public:
- struct Options {
- // The maximum number of raw bytes to print per line in the output. 8 is a
- // good default due to the largest type (double) being 8 bytes long.
- size_t max_bytes_per_line = 8;
- // The output file postfix, appended between the filename and the extension.
- // Example binary1.bin -> binary1_annotated.bin
- std::string output_postfix = "";
- // The output file extension, replacing any extension given. If empty, don't
- // change the provided extension. AFB = Annotated Flatbuffer Binary
- //
- // Example: binary1.bin -> binary1.afb
- std::string output_extension = "afb";
- // Controls.
- bool include_vector_contents = true;
- };
- explicit AnnotatedBinaryTextGenerator(
- const Options &options, std::map<uint64_t, BinarySection> annotations,
- const uint8_t *const binary, const int64_t binary_length)
- : annotations_(std::move(annotations)),
- binary_(binary),
- binary_length_(binary_length),
- options_(options) {}
- // Generate the annotated binary for the given `filename`. Returns true if the
- // annotated binary was successfully saved.
- bool Generate(const std::string &filename,
- const std::string &schema_filename);
- private:
- const std::map<uint64_t, BinarySection> annotations_;
- // The binary data itself.
- const uint8_t *binary_;
- const int64_t binary_length_;
- // Output configuration
- const Options options_;
- };
- } // namespace flatbuffers
- #endif // FLATBUFFERS_ANNOTATED_BINARY_TEXT_GEN_H_
|