aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/flatbuffers/src/idl_gen_binary.cpp
diff options
context:
space:
mode:
authorreshilkin <reshilkin@yandex-team.com>2023-08-11 12:01:29 +0300
committerreshilkin <reshilkin@yandex-team.com>2023-08-11 13:00:03 +0300
commit5894c3ce50a49a9f9bc1c0316e2ef0708e3a7ef8 (patch)
tree624e56690fe689e569d05612fa0e92f2c5bdb75b /contrib/libs/flatbuffers/src/idl_gen_binary.cpp
parent1eb895279c52b0d2505a31b79ad326b56d0b2681 (diff)
downloadydb-5894c3ce50a49a9f9bc1c0316e2ef0708e3a7ef8.tar.gz
Update contrib/libs/flatbuffers to 23.5.9
Diffstat (limited to 'contrib/libs/flatbuffers/src/idl_gen_binary.cpp')
-rw-r--r--contrib/libs/flatbuffers/src/idl_gen_binary.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/contrib/libs/flatbuffers/src/idl_gen_binary.cpp b/contrib/libs/flatbuffers/src/idl_gen_binary.cpp
new file mode 100644
index 0000000000..feb4e2f55e
--- /dev/null
+++ b/contrib/libs/flatbuffers/src/idl_gen_binary.cpp
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ */
+
+// independent from idl_parser, since this code is not needed for most clients
+
+#include "idl_gen_binary.h"
+
+#include <limits>
+#include <memory>
+#include <string>
+#include <unordered_set>
+
+#include "flatbuffers/base.h"
+#include "flatbuffers/code_generators.h"
+#include "flatbuffers/flatbuffers.h"
+#include "flatbuffers/flatc.h"
+#include "flatbuffers/idl.h"
+#include "flatbuffers/util.h"
+
+namespace flatbuffers {
+
+namespace {
+
+class BinaryCodeGenerator : public CodeGenerator {
+ public:
+ Status GenerateCode(const Parser &parser, const std::string &path,
+ const std::string &filename) override {
+ if (!GenerateBinary(parser, path, filename)) { return Status::ERROR; }
+ return Status::OK;
+ }
+
+ // Generate code from the provided `buffer` of given `length`. The buffer is a
+ // serialized reflection.fbs.
+ Status GenerateCode(const uint8_t *buffer, int64_t length) override {
+ (void)buffer;
+ (void)length;
+ return Status::NOT_IMPLEMENTED;
+ }
+
+ Status GenerateMakeRule(const Parser &parser, const std::string &path,
+ const std::string &filename,
+ std::string &output) override {
+ output = BinaryMakeRule(parser, path, filename);
+ return Status::OK;
+ }
+
+ Status GenerateGrpcCode(const Parser &parser, const std::string &path,
+ const std::string &filename) override {
+ (void)parser;
+ (void)path;
+ (void)filename;
+ return Status::NOT_IMPLEMENTED;
+ }
+
+ Status GenerateRootFile(const Parser &parser,
+ const std::string &path) override {
+ (void)parser;
+ (void)path;
+ return Status::NOT_IMPLEMENTED;
+ }
+
+ bool IsSchemaOnly() const override { return false; }
+
+ bool SupportsBfbsGeneration() const override { return false; }
+
+ bool SupportsRootFileGeneration() const override { return false; }
+
+ IDLOptions::Language Language() const override { return IDLOptions::kBinary; }
+
+ std::string LanguageName() const override { return "binary"; }
+};
+
+} // namespace
+
+std::unique_ptr<CodeGenerator> NewBinaryCodeGenerator() {
+ return std::unique_ptr<BinaryCodeGenerator>(new BinaryCodeGenerator());
+}
+
+} // namespace flatbuffers