![]() |
LeechCraft 0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
|
#include <stdexcept>#include <type_traits>#include <memory>#include <optional>#include <boost/preprocessor/stringize.hpp>#include <boost/preprocessor/tuple.hpp>#include <QStringList>#include <QDateTime>#include <QSqlQuery>#include <QSqlRecord>#include <QVariant>#include <QtDebug>#include <util/sll/ctstringutils.h>#include <util/sll/prelude.h>#include <util/sll/typelist.h>#include <util/sll/typegetter.h>#include <util/sll/void.h>#include <util/db/dblock.h>#include <util/db/util.h>#include "oraltypes.h"#include "sqliteimpl.h"Go to the source code of this file.
Namespaces | |
| namespace | LC |
| namespace | LC::Util |
| namespace | LC::Util::oral |
| namespace | LC::Util::oral::detail |
| namespace | LC::Util::oral::infix |
| namespace | LC::Util::oral::sph |
Concepts | |
| concept | LC::Util::oral::detail::TypeNameCustomizedMember |
| concept | LC::Util::oral::detail::BaseTypeCustomized |
| concept | LC::Util::oral::detail::HasPKey |
| concept | LC::Util::oral::detail::EitherIsExprTree |
Macros | |
| #define | ORAL_STRING_FIELD_IMPL(index, sname, field) |
| #define | ORAL_STRING_FIELD(_, index, args) |
| #define | ORAL_ADAPT_STRUCT(sname, ...) |
Typedefs | |
| using | LC::Util::oral::QSqlQuery_ptr = std::shared_ptr<QSqlQuery> |
| template<typename Seq, int Idx> | |
| using | LC::Util::oral::detail::ValueAtC_t = std::decay_t<decltype (Get<Idx> (std::declval<Seq> ()))> |
| template<typename T> | |
| using | LC::Util::oral::detail::UnwrapIndirect_t |
| template<typename T> | |
| using | LC::Util::oral::sph::distinct = detail::SelectDistinct<T> |
| template<typename T> | |
| using | LC::Util::oral::ObjectInfo_ptr = std::unique_ptr<ObjectInfo<T>> |
Functions | |
| template<size_t Idx, typename Seq> | |
| constexpr decltype(auto) | LC::Util::oral::detail::Get (const Seq &seq) |
| template<size_t Idx, typename Seq> | |
| constexpr decltype(auto) | LC::Util::oral::detail::Get (Seq &seq) |
| template<typename Seq> | |
| constexpr auto | LC::Util::oral::detail::GetFullSize (const Seq &seq) |
| template<typename T, CtString str> | |
| consteval auto | LC::Util::oral::detail::MorphFieldName () |
| template<typename Seq, int Idx> | |
| consteval auto | LC::Util::oral::detail::GetFieldName () |
| template<typename T> | |
| QVariant | LC::Util::oral::detail::ToVariantF (const T &t) noexcept |
| template<size_t Ix, typename Seq> | |
| void | LC::Util::oral::detail::BindAtIndex (const Seq &seq, QSqlQuery &query, bool bindPrimaryKey) |
| template<typename Seq> | |
| auto | LC::Util::oral::detail::DoInsert (const Seq &seq, QSqlQuery &insertQuery, bool bindPrimaryKey) |
| template<typename Seq> | |
| consteval int | LC::Util::oral::detail::PKeyIndexUnsafe () |
| template<typename Seq> | |
| consteval int | LC::Util::oral::detail::PKeyIndex () |
| template<typename Seq> | |
| constexpr auto | LC::Util::oral::detail::HasAutogenPKey () noexcept |
| template<typename Seq> | |
| constexpr auto | LC::Util::oral::detail::ExtractReplaceFields (InsertAction::Replace::WholeType) |
| template<typename Seq, auto... Ptrs> | |
| constexpr auto | LC::Util::oral::detail::ExtractReplaceFields (InsertAction::Replace::FieldsType< Ptrs... >) |
| template<typename T, size_t... Indices> | |
| T | LC::Util::oral::detail::InitializeFromQuery (const QSqlQuery &q, std::index_sequence< Indices... >, int startIdx) noexcept |
| template<ExprType Type> | |
| constexpr auto | LC::Util::oral::detail::TypeToSql () noexcept |
| constexpr bool | LC::Util::oral::detail::IsRelational (ExprType type) noexcept |
| template<ExprType Type> | |
| constexpr auto | LC::Util::oral::detail::WrapSubexpr (auto subexpr) |
| template<ExprType Type, typename Seq, typename L, typename R> | |
| constexpr bool | LC::Util::oral::detail::Typecheck () |
| template<typename T> | |
| constexpr auto | LC::Util::oral::detail::AsLeafData (const T &node) noexcept |
| template<ExprType Type, typename L, typename R> | |
| auto | LC::Util::oral::detail::MakeExprTree (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator== (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator< (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator<= (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator> (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator>= (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator!= (const L &left, const R &right) noexcept |
| template<typename L, ExprType Op> | |
| auto | LC::Util::oral::detail::operator| (const L &left, InfixBinary< Op >) noexcept |
| template<typename L, ExprType Op, typename R> | |
| auto | LC::Util::oral::detail::operator| (const InfixBinaryProxy< L, Op > &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator&& (const L &left, const R &right) noexcept |
| template<typename L, typename R> requires EitherIsExprTree<L, R> | |
| auto | LC::Util::oral::detail::operator|| (const L &left, const R &right) noexcept |
| template<CtString BindPrefix, typename Seq, typename Tree> | |
| constexpr auto | LC::Util::oral::detail::ExprTreeToSql () noexcept |
| template<CtString BindPrefix, typename Seq, typename Tree> | |
| void | LC::Util::oral::detail::BindExprTree (const Tree &tree, QSqlQuery &query) |
| template<typename L, typename R> requires IsSelector<L> && IsSelector<R> | |
| SelectorUnion< L, R > | LC::Util::oral::detail::operator+ (L, R) noexcept |
| template<auto Ptr> | |
| auto | LC::Util::oral::detail::MemberFromVariant (const QVariant &var) noexcept |
| template<auto Ptr> | |
| auto | LC::Util::oral::detail::MakeIndexedQueryHandler (const QSqlQuery &q, int startIdx=0) noexcept |
| template<auto... Ptrs> | |
| auto | LC::Util::oral::detail::MakeIndexedQueryHandler (MemberPtrs< Ptrs... >, const QSqlQuery &q, int startIdx) noexcept |
| template<size_t RepIdx, size_t TupIdx, typename Tuple, typename NewType> | |
| constexpr decltype(auto) | LC::Util::oral::detail::GetReplaceTupleElem (Tuple &&tuple, NewType &&arg) noexcept |
| template<size_t RepIdx, typename NewType, typename Tuple, size_t... TupIdxs> | |
| constexpr auto | LC::Util::oral::detail::ReplaceTupleElemImpl (Tuple &&tuple, NewType &&arg, std::index_sequence< TupIdxs... >) noexcept |
| template<size_t RepIdx, typename NewType, typename... TupleArgs> | |
| constexpr auto | LC::Util::oral::detail::ReplaceTupleElem (std::tuple< TupleArgs... > &&tuple, NewType &&arg) noexcept |
| template<typename... LArgs, typename... RArgs> | |
| auto | LC::Util::oral::detail::Combine (std::tuple< LArgs... > &&left, std::tuple< RArgs... > &&right) noexcept |
| template<typename... LArgs, typename R> | |
| auto | LC::Util::oral::detail::Combine (std::tuple< LArgs... > &&left, const R &right) noexcept |
| template<typename L, typename... RArgs> | |
| auto | LC::Util::oral::detail::Combine (const L &left, std::tuple< RArgs... > &&right) noexcept |
| template<typename L, typename R> | |
| auto | LC::Util::oral::detail::Combine (const L &left, const R &right) noexcept |
| template<ResultBehaviour ResultBehaviour, typename ResList> | |
| decltype(auto) | LC::Util::oral::detail::HandleResultBehaviour (ResList &&list) noexcept |
| template<typename L, typename O> | |
| constexpr auto | LC::Util::oral::detail::LimitOffsetToString () noexcept |
| template<typename L, typename O> | |
| void | LC::Util::oral::detail::BindLimitOffset (QSqlQuery &query, L limit, O offset) noexcept |
| constexpr auto | LC::Util::oral::detail::CombineBehaviour (ResultBehaviour l, ResultBehaviour r) noexcept |
| template<template< typename... > typename Tgt = std::tuple, template< typename... > typename Src, typename... Vals> | |
| constexpr auto | LC::Util::oral::detail::MapTy (Src< Vals... >, auto f) |
| template<typename Seq, auto... Ptrs> | |
| constexpr auto | LC::Util::oral::detail::CreateIndex (const QSqlDatabase &db, Index< Ptrs... >) |
| template<typename Seq> | |
| void | LC::Util::oral::detail::AdaptCreateIndices (const QSqlDatabase &db) |
| template<auto... Ptrs> | |
| constexpr auto | LC::Util::oral::detail::ExtractConstraintFields (UniqueSubset< Ptrs... >) |
| template<auto... Ptrs> | |
| constexpr auto | LC::Util::oral::detail::ExtractConstraintFields (PrimaryKey< Ptrs... >) |
| template<typename T> | |
| constexpr auto | LC::Util::oral::detail::GetConstraintsStrings () noexcept |
| template<typename ImplFactory, typename T, size_t... Indices> | |
| constexpr auto | LC::Util::oral::detail::GetTypes (std::index_sequence< Indices... >) noexcept |
| template<auto Name, typename ImplFactory, typename T> | |
| constexpr auto | LC::Util::oral::detail::AdaptCreateTableNamed () noexcept |
| template<typename ImplFactory, typename T> | |
| constexpr auto | LC::Util::oral::detail::AdaptCreateTable () noexcept |
| template<typename T, typename ImplFactory = detail::SQLite::ImplFactory> | |
| ObjectInfo< T > | LC::Util::oral::Adapt (const QSqlDatabase &db) |
| template<typename T, typename ImplFactory = SQLiteImplFactory> | |
| ObjectInfo_ptr< T > | LC::Util::oral::AdaptPtr (const QSqlDatabase &db) |
| template<typename ImplFactory = SQLiteImplFactory, typename... Ts> | |
| void | LC::Util::oral::AdaptPtrs (const QSqlDatabase &db, ObjectInfo_ptr< Ts > &... objects) |
| #define ORAL_ADAPT_STRUCT | ( | sname, | |
| ... ) |
| #define ORAL_STRING_FIELD | ( | _, | |
| index, | |||
| args ) |
| #define ORAL_STRING_FIELD_IMPL | ( | index, | |
| sname, | |||
| field ) |