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/api/Serializer.hh | |
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/api/Serializer.hh')
-rw-r--r-- | contrib/libs/apache/avro/api/Serializer.hh | 270 |
1 files changed, 135 insertions, 135 deletions
diff --git a/contrib/libs/apache/avro/api/Serializer.hh b/contrib/libs/apache/avro/api/Serializer.hh index 15a8878586..3cc15b5a95 100644 --- a/contrib/libs/apache/avro/api/Serializer.hh +++ b/contrib/libs/apache/avro/api/Serializer.hh @@ -1,135 +1,135 @@ -/* - * 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_Serializer_hh__ -#define avro_Serializer_hh__ - -#include <array> -#include <boost/noncopyable.hpp> - -#include "Config.hh" -#include "Writer.hh" - -namespace avro { - -/// Class that wraps a Writer or ValidatingWriter with an interface that uses -/// explicit write* names instead of writeValue - -template<class Writer> -class Serializer : private boost::noncopyable -{ - - public: - - /// Constructor only works with Writer - explicit Serializer() : - writer_() - {} - - /// Constructor only works with ValidatingWriter - Serializer(const ValidSchema &schema) : - writer_(schema) - {} - - void writeNull() { - writer_.writeValue(Null()); - } - - void writeBool(bool val) { - writer_.writeValue(val); - } - - void writeInt(int32_t val) { - writer_.writeValue(val); - } - - void writeLong(int64_t val) { - writer_.writeValue(val); - } - - void writeFloat(float val) { - writer_.writeValue(val); - } - - void writeDouble(double val) { - writer_.writeValue(val); - } - - void writeBytes(const void *val, size_t size) { - writer_.writeBytes(val); - } - - template <size_t N> - void writeFixed(const uint8_t (&val)[N]) { - writer_.writeFixed(val); - } - - template <size_t N> - void writeFixed(const std::array<uint8_t, N> &val) { - writer_.writeFixed(val); - } - - void writeString(const std::string &val) { - writer_.writeValue(val); - } - - void writeRecord() { - writer_.writeRecord(); - } - - void writeRecordEnd() { - writer_.writeRecordEnd(); - } - - void writeArrayBlock(int64_t size) { - writer_.writeArrayBlock(size); - } - - void writeArrayEnd() { - writer_.writeArrayEnd(); - } - - void writeMapBlock(int64_t size) { - writer_.writeMapBlock(size); - } - - void writeMapEnd() { - writer_.writeMapEnd(); - } - - void writeUnion(int64_t choice) { - writer_.writeUnion(choice); - } - - void writeEnum(int64_t choice) { - writer_.writeEnum(choice); - } - - InputBuffer buffer() const { - return writer_.buffer(); - } - - private: - - Writer writer_; - -}; - -} // 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_Serializer_hh__ +#define avro_Serializer_hh__ + +#include <array> +#include <boost/noncopyable.hpp> + +#include "Config.hh" +#include "Writer.hh" + +namespace avro { + +/// Class that wraps a Writer or ValidatingWriter with an interface that uses +/// explicit write* names instead of writeValue + +template<class Writer> +class Serializer : private boost::noncopyable +{ + + public: + + /// Constructor only works with Writer + explicit Serializer() : + writer_() + {} + + /// Constructor only works with ValidatingWriter + Serializer(const ValidSchema &schema) : + writer_(schema) + {} + + void writeNull() { + writer_.writeValue(Null()); + } + + void writeBool(bool val) { + writer_.writeValue(val); + } + + void writeInt(int32_t val) { + writer_.writeValue(val); + } + + void writeLong(int64_t val) { + writer_.writeValue(val); + } + + void writeFloat(float val) { + writer_.writeValue(val); + } + + void writeDouble(double val) { + writer_.writeValue(val); + } + + void writeBytes(const void *val, size_t size) { + writer_.writeBytes(val); + } + + template <size_t N> + void writeFixed(const uint8_t (&val)[N]) { + writer_.writeFixed(val); + } + + template <size_t N> + void writeFixed(const std::array<uint8_t, N> &val) { + writer_.writeFixed(val); + } + + void writeString(const std::string &val) { + writer_.writeValue(val); + } + + void writeRecord() { + writer_.writeRecord(); + } + + void writeRecordEnd() { + writer_.writeRecordEnd(); + } + + void writeArrayBlock(int64_t size) { + writer_.writeArrayBlock(size); + } + + void writeArrayEnd() { + writer_.writeArrayEnd(); + } + + void writeMapBlock(int64_t size) { + writer_.writeMapBlock(size); + } + + void writeMapEnd() { + writer_.writeMapEnd(); + } + + void writeUnion(int64_t choice) { + writer_.writeUnion(choice); + } + + void writeEnum(int64_t choice) { + writer_.writeEnum(choice); + } + + InputBuffer buffer() const { + return writer_.buffer(); + } + + private: + + Writer writer_; + +}; + +} // namespace avro + +#endif |