diff options
author | thegeorg <thegeorg@yandex-team.ru> | 2022-02-10 16:45:12 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:12 +0300 |
commit | 49116032d905455a7b1c994e4a696afc885c1e71 (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/apache/avro/api/Parser.hh | |
parent | 4e839db24a3bbc9f1c610c43d6faaaa99824dcca (diff) | |
download | ydb-49116032d905455a7b1c994e4a696afc885c1e71.tar.gz |
Restoring authorship annotation for <thegeorg@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/apache/avro/api/Parser.hh')
-rw-r--r-- | contrib/libs/apache/avro/api/Parser.hh | 302 |
1 files changed, 151 insertions, 151 deletions
diff --git a/contrib/libs/apache/avro/api/Parser.hh b/contrib/libs/apache/avro/api/Parser.hh index 3ba6af65e3..fdf28fb0d5 100644 --- a/contrib/libs/apache/avro/api/Parser.hh +++ b/contrib/libs/apache/avro/api/Parser.hh @@ -1,151 +1,151 @@ -/* - * 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. - */ - -#ifndef avro_Parser_hh__ -#define avro_Parser_hh__ - -#include "Config.hh" -#include "Reader.hh" - -#include <array> - -namespace avro { - -/// -/// Class that wraps a reader or ValidatingReade with an interface that uses -/// explicit get* names instead of getValue -/// - -template<class Reader> -class Parser : private boost::noncopyable -{ - - public: - - // Constructor only works with Writer - explicit Parser(const InputBuffer &in) : - reader_(in) - {} - - /// Constructor only works with ValidatingWriter - Parser(const ValidSchema &schema, const InputBuffer &in) : - reader_(schema, in) - {} - - void readNull() { - Null null; - reader_.readValue(null); - } - - bool readBool() { - bool val; - reader_.readValue(val); - return val; - } - - int32_t readInt() { - int32_t val; - reader_.readValue(val); - return val; - } - - int64_t readLong() { - int64_t val; - reader_.readValue(val); - return val; - } - - float readFloat() { - float val; - reader_.readValue(val); - return val; - } - - double readDouble() { - double val; - reader_.readValue(val); - return val; - } - - void readString(std::string &val) { - reader_.readValue(val); - } - - void readBytes(std::vector<uint8_t> &val) { - reader_.readBytes(val); - } - - template <size_t N> - void readFixed(uint8_t (&val)[N]) { - reader_.readFixed(val); - } - - template<size_t N> - void readFixed(std::array<uint8_t, N> &val) { - reader_.readFixed(val); - } - - void readRecord() { - reader_.readRecord(); - } - - void readRecordEnd() { - reader_.readRecordEnd(); - } - - int64_t readArrayBlockSize() { - return reader_.readArrayBlockSize(); - } - - int64_t readUnion() { - return reader_.readUnion(); - } - - int64_t readEnum() { - return reader_.readEnum(); - } - - int64_t readMapBlockSize() { - return reader_.readMapBlockSize(); - } - - private: - - friend Type nextType(Parser<ValidatingReader> &p); - friend bool currentRecordName(Parser<ValidatingReader> &p, std::string &name); - friend bool nextFieldName(Parser<ValidatingReader> &p, std::string &name); - - Reader reader_; - -}; - -inline Type nextType(Parser<ValidatingReader> &p) { - return p.reader_.nextType(); -} - -inline bool currentRecordName(Parser<ValidatingReader> &p, std::string &name) { - return p.reader_.currentRecordName(name); -} - -inline bool nextFieldName(Parser<ValidatingReader> &p, std::string &name) { - return p.reader_.nextFieldName(name); -} - -} // namespace avro - -#endif +/* + * 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. + */ + +#ifndef avro_Parser_hh__ +#define avro_Parser_hh__ + +#include "Config.hh" +#include "Reader.hh" + +#include <array> + +namespace avro { + +/// +/// Class that wraps a reader or ValidatingReade with an interface that uses +/// explicit get* names instead of getValue +/// + +template<class Reader> +class Parser : private boost::noncopyable +{ + + public: + + // Constructor only works with Writer + explicit Parser(const InputBuffer &in) : + reader_(in) + {} + + /// Constructor only works with ValidatingWriter + Parser(const ValidSchema &schema, const InputBuffer &in) : + reader_(schema, in) + {} + + void readNull() { + Null null; + reader_.readValue(null); + } + + bool readBool() { + bool val; + reader_.readValue(val); + return val; + } + + int32_t readInt() { + int32_t val; + reader_.readValue(val); + return val; + } + + int64_t readLong() { + int64_t val; + reader_.readValue(val); + return val; + } + + float readFloat() { + float val; + reader_.readValue(val); + return val; + } + + double readDouble() { + double val; + reader_.readValue(val); + return val; + } + + void readString(std::string &val) { + reader_.readValue(val); + } + + void readBytes(std::vector<uint8_t> &val) { + reader_.readBytes(val); + } + + template <size_t N> + void readFixed(uint8_t (&val)[N]) { + reader_.readFixed(val); + } + + template<size_t N> + void readFixed(std::array<uint8_t, N> &val) { + reader_.readFixed(val); + } + + void readRecord() { + reader_.readRecord(); + } + + void readRecordEnd() { + reader_.readRecordEnd(); + } + + int64_t readArrayBlockSize() { + return reader_.readArrayBlockSize(); + } + + int64_t readUnion() { + return reader_.readUnion(); + } + + int64_t readEnum() { + return reader_.readEnum(); + } + + int64_t readMapBlockSize() { + return reader_.readMapBlockSize(); + } + + private: + + friend Type nextType(Parser<ValidatingReader> &p); + friend bool currentRecordName(Parser<ValidatingReader> &p, std::string &name); + friend bool nextFieldName(Parser<ValidatingReader> &p, std::string &name); + + Reader reader_; + +}; + +inline Type nextType(Parser<ValidatingReader> &p) { + return p.reader_.nextType(); +} + +inline bool currentRecordName(Parser<ValidatingReader> &p, std::string &name) { + return p.reader_.currentRecordName(name); +} + +inline bool nextFieldName(Parser<ValidatingReader> &p, std::string &name) { + return p.reader_.nextFieldName(name); +} + +} // namespace avro + +#endif |