From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- .../thrift/lib/cpp/test/GenericHelpers.h | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/jaegertracing/thrift/lib/cpp/test/GenericHelpers.h (limited to 'src/jaegertracing/thrift/lib/cpp/test/GenericHelpers.h') diff --git a/src/jaegertracing/thrift/lib/cpp/test/GenericHelpers.h b/src/jaegertracing/thrift/lib/cpp/test/GenericHelpers.h new file mode 100644 index 000000000..bcef9f242 --- /dev/null +++ b/src/jaegertracing/thrift/lib/cpp/test/GenericHelpers.h @@ -0,0 +1,107 @@ +/* + * 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 + * + * 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 _THRIFT_TEST_GENERICHELPERS_H_ +#define _THRIFT_TEST_GENERICHELPERS_H_ 1 + +#include +#include +#include + +/* ClassName Helper for cleaner exceptions */ +class ClassNames { +public: + template + static const char* getName() { + return "Unknown type"; + } +}; + +template <> +const char* ClassNames::getName() { + return "byte"; +} +template <> +const char* ClassNames::getName() { + return "short"; +} +template <> +const char* ClassNames::getName() { + return "int"; +} +template <> +const char* ClassNames::getName() { + return "long"; +} +template <> +const char* ClassNames::getName() { + return "double"; +} +template <> +const char* ClassNames::getName() { + return "string"; +} + +/* Generic Protocol I/O function for tests */ +class GenericIO { +public: + /* Write functions */ + + static uint32_t write(std::shared_ptr proto, const int8_t& val) { + return proto->writeByte(val); + } + + static uint32_t write(std::shared_ptr proto, const int16_t& val) { + return proto->writeI16(val); + } + + static uint32_t write(std::shared_ptr proto, const int32_t& val) { + return proto->writeI32(val); + } + + static uint32_t write(std::shared_ptr proto, const double& val) { + return proto->writeDouble(val); + } + + static uint32_t write(std::shared_ptr proto, const int64_t& val) { + return proto->writeI64(val); + } + + static uint32_t write(std::shared_ptr proto, const std::string& val) { + return proto->writeString(val); + } + + /* Read functions */ + + static uint32_t read(std::shared_ptr proto, int8_t& val) { return proto->readByte(val); } + + static uint32_t read(std::shared_ptr proto, int16_t& val) { return proto->readI16(val); } + + static uint32_t read(std::shared_ptr proto, int32_t& val) { return proto->readI32(val); } + + static uint32_t read(std::shared_ptr proto, int64_t& val) { return proto->readI64(val); } + + static uint32_t read(std::shared_ptr proto, double& val) { return proto->readDouble(val); } + + static uint32_t read(std::shared_ptr proto, std::string& val) { + return proto->readString(val); + } +}; + +#endif -- cgit v1.2.3