73 lines
3.3 KiB
C++
73 lines
3.3 KiB
C++
#ifndef TEST_RESULT_READER_HPP
|
|
#define TEST_RESULT_READER_HPP
|
|
|
|
#include "matador/sql/interface/query_result_reader.hpp"
|
|
|
|
namespace matador::test::orm {
|
|
|
|
namespace detail {
|
|
|
|
class empty_binder final : public utils::attribute_reader
|
|
{
|
|
public:
|
|
void read_value(const char *, size_t, int8_t &) override {}
|
|
void read_value(const char *, size_t, int16_t &) override {}
|
|
void read_value(const char *, size_t, int32_t &) override {}
|
|
void read_value(const char *, size_t, int64_t &) override {}
|
|
void read_value(const char *, size_t, uint8_t &) override {}
|
|
void read_value(const char *, size_t, uint16_t &) override {}
|
|
void read_value(const char *, size_t, uint32_t &) override {}
|
|
void read_value(const char *, size_t, uint64_t &) override {}
|
|
void read_value(const char *, size_t, bool &) override {}
|
|
void read_value(const char *, size_t, float &) override {}
|
|
void read_value(const char *, size_t, double &) override {}
|
|
void read_value(const char *, size_t, time &) override {}
|
|
void read_value(const char *, size_t, date &) override {}
|
|
void read_value(const char *, size_t, char *, size_t) override {}
|
|
void read_value(const char *, size_t, std::string &) override {}
|
|
void read_value(const char *, size_t, std::string &, size_t) override {}
|
|
void read_value(const char *, size_t, utils::blob &) override {}
|
|
void read_value(const char *, size_t, utils::value &, size_t) override {}
|
|
};
|
|
|
|
}
|
|
|
|
class test_result_reader final : public sql::query_result_reader {
|
|
public:
|
|
[[nodiscard]] size_t column_count() const override;
|
|
[[nodiscard]] const char *column(size_t index) const override;
|
|
[[nodiscard]] utils::result<bool, utils::error> fetch() override;
|
|
[[nodiscard]] size_t start_column_index() const override;
|
|
void unshift() override;
|
|
|
|
void read_value(const char *id, size_t index, int8_t &value) override;
|
|
void read_value(const char *id, size_t index, int16_t &value) override;
|
|
void read_value(const char *id, size_t index, int32_t &value) override;
|
|
void read_value(const char *id, size_t index, int64_t &value) override;
|
|
void read_value(const char *id, size_t index, uint8_t &value) override;
|
|
void read_value(const char *id, size_t index, uint16_t &value) override;
|
|
void read_value(const char *id, size_t index, uint32_t &value) override;
|
|
void read_value(const char *id, size_t index, uint64_t &value) override;
|
|
void read_value(const char *id, size_t index, bool &value) override;
|
|
void read_value(const char *id, size_t index, float &value) override;
|
|
void read_value(const char *id, size_t index, double &value) override;
|
|
void read_value(const char *id, size_t index, matador::time &value) override;
|
|
void read_value(const char *id, size_t index, matador::date &value) override;
|
|
void read_value(const char *id, size_t index, char *value, size_t size) override;
|
|
void read_value(const char *id, size_t index, std::string &value) override;
|
|
void read_value(const char *id, size_t index, std::string &value, size_t size) override;
|
|
void read_value(const char *id, size_t index, utils::blob &value) override;
|
|
void read_value(const char *id, size_t index, utils::value &val, size_t size) override;
|
|
|
|
protected:
|
|
attribute_reader &result_binder() override;
|
|
|
|
private:
|
|
uint8_t rows_{5};
|
|
detail::empty_binder empty_binder_;
|
|
};
|
|
|
|
}
|
|
|
|
#endif //TEST_RESULT_READER_HPP
|