diff options
author | thegeorg <thegeorg@yandex-team.ru> | 2022-02-10 16:45:08 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:08 +0300 |
commit | 4e839db24a3bbc9f1c610c43d6faaaa99824dcca (patch) | |
tree | 506dac10f5df94fab310584ee51b24fc5a081c22 /contrib/libs/apache/avro/impl/parsing/Symbol.cc | |
parent | 2d37894b1b037cf24231090eda8589bbb44fb6fc (diff) | |
download | ydb-4e839db24a3bbc9f1c610c43d6faaaa99824dcca.tar.gz |
Restoring authorship annotation for <thegeorg@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/apache/avro/impl/parsing/Symbol.cc')
-rw-r--r-- | contrib/libs/apache/avro/impl/parsing/Symbol.cc | 222 |
1 files changed, 111 insertions, 111 deletions
diff --git a/contrib/libs/apache/avro/impl/parsing/Symbol.cc b/contrib/libs/apache/avro/impl/parsing/Symbol.cc index 6eb83309be..b59b965133 100644 --- a/contrib/libs/apache/avro/impl/parsing/Symbol.cc +++ b/contrib/libs/apache/avro/impl/parsing/Symbol.cc @@ -1,111 +1,111 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 - * - * https://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. - */ - - -#include "Symbol.hh" - -namespace avro { -namespace parsing { - -using std::vector; -using std::string; -using std::ostringstream; - -const char* Symbol::stringValues[] = { - "TerminalLow", - "Null", - "Bool", - "Int", - "Long", - "Float", - "Double", - "String", - "Bytes", - "ArrayStart", - "ArrayEnd", - "MapStart", - "MapEnd", - "Fixed", - "Enum", - "Union", - "TerminalHigh", - "SizeCheck", - "NameList", - "Root", - "Repeater", - "Alternative", - "Placeholder", - "Indirect", - "Symbolic", - "EnumAdjust", - "UnionAdjust", - "SkipStart", - "Resolve", - "ImplicitActionLow", - "RecordStart", - "RecordEnd", - "Field", - "Record", - "SizeList", - "WriterUnion", - "DefaultStart", - "DefaultEnd", - "ImplicitActionHigh", - "Error" -}; - -Symbol Symbol::enumAdjustSymbol(const NodePtr& writer, const NodePtr& reader) -{ - vector<string> rs; - size_t rc = reader->names(); - for (size_t i = 0; i < rc; ++i) { - rs.push_back(reader->nameAt(i)); - } - - size_t wc = writer->names(); - vector<int> adj; - adj.reserve(wc); - - vector<string> err; - - for (size_t i = 0; i < wc; ++i) { - const string& s = writer->nameAt(i); - vector<string>::const_iterator it = find(rs.begin(), rs.end(), s); - if (it == rs.end()) { - int pos = err.size() + 1; - adj.push_back(-pos); - err.push_back(s); - } else { - adj.push_back(it - rs.begin()); - } - } - return Symbol(sEnumAdjust, make_pair(adj, err)); -} - -Symbol Symbol::error(const NodePtr& writer, const NodePtr& reader) -{ - ostringstream oss; - oss << "Cannot resolve: " << std::endl; - writer->printJson(oss, 0); - oss << std::endl << "with" << std::endl; - reader->printJson(oss, 0); - return Symbol(sError, oss.str()); -} - -} // namespace parsing -} // namespace avro +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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. + */ + + +#include "Symbol.hh" + +namespace avro { +namespace parsing { + +using std::vector; +using std::string; +using std::ostringstream; + +const char* Symbol::stringValues[] = { + "TerminalLow", + "Null", + "Bool", + "Int", + "Long", + "Float", + "Double", + "String", + "Bytes", + "ArrayStart", + "ArrayEnd", + "MapStart", + "MapEnd", + "Fixed", + "Enum", + "Union", + "TerminalHigh", + "SizeCheck", + "NameList", + "Root", + "Repeater", + "Alternative", + "Placeholder", + "Indirect", + "Symbolic", + "EnumAdjust", + "UnionAdjust", + "SkipStart", + "Resolve", + "ImplicitActionLow", + "RecordStart", + "RecordEnd", + "Field", + "Record", + "SizeList", + "WriterUnion", + "DefaultStart", + "DefaultEnd", + "ImplicitActionHigh", + "Error" +}; + +Symbol Symbol::enumAdjustSymbol(const NodePtr& writer, const NodePtr& reader) +{ + vector<string> rs; + size_t rc = reader->names(); + for (size_t i = 0; i < rc; ++i) { + rs.push_back(reader->nameAt(i)); + } + + size_t wc = writer->names(); + vector<int> adj; + adj.reserve(wc); + + vector<string> err; + + for (size_t i = 0; i < wc; ++i) { + const string& s = writer->nameAt(i); + vector<string>::const_iterator it = find(rs.begin(), rs.end(), s); + if (it == rs.end()) { + int pos = err.size() + 1; + adj.push_back(-pos); + err.push_back(s); + } else { + adj.push_back(it - rs.begin()); + } + } + return Symbol(sEnumAdjust, make_pair(adj, err)); +} + +Symbol Symbol::error(const NodePtr& writer, const NodePtr& reader) +{ + ostringstream oss; + oss << "Cannot resolve: " << std::endl; + writer->printJson(oss, 0); + oss << std::endl << "with" << std::endl; + reader->printJson(oss, 0); + return Symbol(sError, oss.str()); +} + +} // namespace parsing +} // namespace avro |