![]() |
LeechCraft
0.6.70-10870-g558588d6ec
Modular cross-platform feature rich live environment.
|
Typedefs | |
template<typename U > | |
using | MorpherDetector = decltype(std::declval< U >().FieldNameMorpher(QString {})) |
template<typename Seq , int Idx> | |
using | ValueAtC_t = typename boost::fusion::result_of::value_at_c< Seq, Idx >::type |
template<typename Seq , typename Idx > | |
using | ValueAt_t = typename boost::fusion::result_of::value_at< Seq, Idx >::type |
template<typename Seq > | |
using | FindPKeyDetector = boost::mpl::int_< FindPKey< Seq >::result_type::value > |
template<typename T , typename... Args> | |
using | AggregateDetector_t = decltype(new T { std::declval< Args >()... }) |
template<typename T > | |
using | UnwrapIndirect_t = typename std::conditional_t< IsIndirect< T > {}, T, WrapDirect< T > >::value_type |
template<typename Seq , typename L , typename R > | |
using | ComparableDetector = decltype(std::declval< UnwrapIndirect_t< typename L::template ValueType_t< Seq > >>()==std::declval< UnwrapIndirect_t< typename R::template ValueType_t< Seq > >>()) |
template<typename L , typename R > | |
using | EnableRelOp_t = std::enable_if_t< AnyOf< IsExprTree, L, R > > |
template<typename T > | |
using | ConstraintsDetector = typename T::Constraints |
template<typename T > | |
using | ConstraintsType = Util::IsDetected_t< Constraints<>, ConstraintsDetector, T > |
Functions | |
bool | MatchesSchema (const QString &baseName, const QString &schema, QSqlDatabase &db) |
template<typename T > | |
QString | MorphFieldName (QString str) |
template<auto Ptr, size_t Idx = 0> | |
constexpr size_t | FieldIndex () |
template<typename T > | |
QVariant | ToVariantF (const T &t) |
template<typename T > | |
CachedFieldsData | BuildCachedFieldsData (const QString &table) |
template<typename T > | |
CachedFieldsData | BuildCachedFieldsData () |
template<typename T > | |
auto | MakeInserter (const CachedFieldsData &data, const QSqlQuery_ptr &insertQuery, bool bindPrimaryKey) |
template<typename Seq > | |
constexpr auto | HasAutogenPKey () |
QString | GetInsertPrefix (InsertAction action) |
template<typename T , size_t... Indices> | |
T | InitializeFromQuery (const QSqlQuery &q, std::index_sequence< Indices... >) |
QString | TypeToSql (ExprType type) |
constexpr bool | IsRelational (ExprType type) |
template<typename T > | |
constexpr auto | AsLeafData (const T &node) |
template<ExprType Type, typename L , typename R > | |
ExprTree< Type, L, R > | MakeExprTree (const L &left, const R &right) |
template<typename L , typename R , typename = EnableRelOp_t<L, R>> | |
auto | operator< (const L &left, const R &right) |
template<typename L , typename R , typename = EnableRelOp_t<L, R>> | |
auto | operator> (const L &left, const R &right) |
template<typename L , typename R , typename = EnableRelOp_t<L, R>> | |
auto | operator== (const L &left, const R &right) |
template<typename L , typename R , typename = EnableRelOp_t<L, R>> | |
auto | operator && (const L &left, const R &right) |
template<typename > | |
auto | HandleExprTree (const ExprTree< ExprType::ConstTrue > &, int lastId=0) |
template<typename Seq , typename Tree , typename = decltype (std::declval<Tree> ().ToSql (std::declval<ToSqlState<Seq>&> ()))> | |
auto | HandleExprTree (const Tree &tree, int lastId=0) |
template<auto... Ptrs, size_t... Idxs> | |
auto | MakeIndexedQueryHandler (detail::MemberPtrs< Ptrs... >, std::index_sequence< Idxs... >) |
template<auto... Ptrs> | |
QStringList | BuildFieldNames () |
template<typename... Args> | |
QStringList | GetConstraintsStringList (Constraints< Args... >, const CachedFieldsData &data) |
template<typename T , size_t... Indices> | |
QList< QString > | GetTypes (std::index_sequence< Indices... >) |
template<typename T > | |
QString | AdaptCreateTable (const CachedFieldsData &data) |
Variables | |
template<typename S > | |
constexpr auto | SeqSize = boost::fusion::result_of::size<S>::type::value |
template<typename S > | |
constexpr auto | SeqIndices = std::make_index_sequence<SeqSize<S>> {} |
template<typename Seq > | |
constexpr auto | HasPKey = IsDetected_v<FindPKeyDetector, Seq> |
template<typename Seq , typename L , typename R > | |
constexpr auto | AreComparableTypes = IsDetected_v<ComparableDetector, Seq, L, R> || IsDetected_v<ComparableDetector, Seq, R, L> |
constexpr auto | ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {} |
template<typename L , typename R > | |
constexpr auto | AllTrees_v = AllOf<IsExprTree, L, R> |
using LeechCraft::Util::oral::detail::AggregateDetector_t = typedef decltype (new T { std::declval<Args> ()... }) |
using LeechCraft::Util::oral::detail::ComparableDetector = typedef decltype (std::declval<UnwrapIndirect_t<typename L::template ValueType_t<Seq> >> () == std::declval<UnwrapIndirect_t<typename R::template ValueType_t<Seq> >> ()) |
using LeechCraft::Util::oral::detail::ConstraintsDetector = typedef typename T::Constraints |
using LeechCraft::Util::oral::detail::ConstraintsType = typedef Util::IsDetected_t<Constraints<>, ConstraintsDetector, T> |
using LeechCraft::Util::oral::detail::EnableRelOp_t = typedef std::enable_if_t<AnyOf<IsExprTree, L, R> > |
using LeechCraft::Util::oral::detail::FindPKeyDetector = typedef boost::mpl::int_<FindPKey<Seq>::result_type::value> |
using LeechCraft::Util::oral::detail::MorpherDetector = typedef decltype (std::declval<U> ().FieldNameMorpher (QString {})) |
using LeechCraft::Util::oral::detail::UnwrapIndirect_t = typedef typename std::conditional_t<IsIndirect<T> {}, T, WrapDirect<T> >::value_type |
using LeechCraft::Util::oral::detail::ValueAt_t = typedef typename boost::fusion::result_of::value_at<Seq, Idx>::type |
using LeechCraft::Util::oral::detail::ValueAtC_t = typedef typename boost::fusion::result_of::value_at_c<Seq, Idx>::type |
|
strong |
|
strong |
QString LeechCraft::Util::oral::detail::AdaptCreateTable | ( | const CachedFieldsData & | data | ) |
Definition at line 1218 of file oral.h.
References LeechCraft::Util::oral::detail::CachedFieldsData::Fields_, GetConstraintsStringList(), LeechCraft::Util::oral::detail::CachedFieldsData::Table_, and LeechCraft::Util::ZipWith().
constexpr auto LeechCraft::Util::oral::detail::AsLeafData | ( | const T & | node | ) |
Definition at line 821 of file oral.h.
Referenced by operator &&(), operator<(), LeechCraft::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::operator=(), operator==(), and operator>().
CachedFieldsData LeechCraft::Util::oral::detail::BuildCachedFieldsData | ( | const QString & | table | ) |
Definition at line 305 of file oral.h.
References LeechCraft::Util::oral::sph::fields, and LeechCraft::Util::Map().
CachedFieldsData LeechCraft::Util::oral::detail::BuildCachedFieldsData | ( | ) |
QStringList LeechCraft::Util::oral::detail::BuildFieldNames | ( | ) |
constexpr size_t LeechCraft::Util::oral::detail::FieldIndex | ( | ) |
QStringList LeechCraft::Util::oral::detail::GetConstraintsStringList | ( | Constraints< Args... > | , |
const CachedFieldsData & | data | ||
) |
Definition at line 1206 of file oral.h.
Referenced by AdaptCreateTable().
|
inline |
Definition at line 383 of file oral.h.
References LeechCraft::Util::oral::Default, LeechCraft::Util::oral::Ignore, LeechCraft::Util::oral::Replace, and LeechCraft::Util::Unreachable().
QList<QString> LeechCraft::Util::oral::detail::GetTypes | ( | std::index_sequence< Indices... > | ) |
auto LeechCraft::Util::oral::detail::HandleExprTree | ( | const ExprTree< ExprType::ConstTrue > & | , |
int | lastId = 0 |
||
) |
auto LeechCraft::Util::oral::detail::HandleExprTree | ( | const Tree & | tree, |
int | lastId = 0 |
||
) |
Definition at line 892 of file oral.h.
References LeechCraft::Util::oral::detail::ToSqlState< T >::LastID_, and LeechCraft::Util::Stlize().
constexpr auto LeechCraft::Util::oral::detail::HasAutogenPKey | ( | ) |
T LeechCraft::Util::oral::detail::InitializeFromQuery | ( | const QSqlQuery & | q, |
std::index_sequence< Indices... > | |||
) |
Definition at line 513 of file oral.h.
References LeechCraft::Util::IsDetected_v.
constexpr bool LeechCraft::Util::oral::detail::IsRelational | ( | ExprType | type | ) |
ExprTree<Type, L, R> LeechCraft::Util::oral::detail::MakeExprTree | ( | const L & | left, |
const R & | right | ||
) |
auto LeechCraft::Util::oral::detail::MakeIndexedQueryHandler | ( | detail::MemberPtrs< Ptrs... > | , |
std::index_sequence< Idxs... > | |||
) |
auto LeechCraft::Util::oral::detail::MakeInserter | ( | const CachedFieldsData & | data, |
const QSqlQuery_ptr & | insertQuery, | ||
bool | bindPrimaryKey | ||
) |
Definition at line 322 of file oral.h.
References LeechCraft::Util::oral::detail::CachedFieldsData::BoundFields_, LeechCraft::Util::DBLock::DumpError(), and ToVariantF().
bool LeechCraft::Util::oral::detail::MatchesSchema | ( | const QString & | baseName, |
const QString & | schema, | ||
QSqlDatabase & | db | ||
) |
Definition at line 42 of file migrate.h.
References LeechCraft::Util::RunTextQuery().
Referenced by LeechCraft::Util::oral::Migrate().
QString LeechCraft::Util::oral::detail::MorphFieldName | ( | QString | str | ) |
auto LeechCraft::Util::oral::detail::operator&& | ( | const L & | left, |
const R & | right | ||
) |
Definition at line 876 of file oral.h.
References AsLeafData().
auto LeechCraft::Util::oral::detail::operator< | ( | const L & | left, |
const R & | right | ||
) |
Definition at line 849 of file oral.h.
References AsLeafData().
auto LeechCraft::Util::oral::detail::operator== | ( | const L & | left, |
const R & | right | ||
) |
Definition at line 867 of file oral.h.
References AsLeafData().
auto LeechCraft::Util::oral::detail::operator> | ( | const L & | left, |
const R & | right | ||
) |
Definition at line 858 of file oral.h.
References AsLeafData().
QVariant LeechCraft::Util::oral::detail::ToVariantF | ( | const T & | t | ) |
Definition at line 290 of file oral.h.
Referenced by LeechCraft::Util::oral::detail::AdaptDelete< T >::AdaptDelete(), MakeInserter(), and LeechCraft::Util::oral::detail::ExprTree< ExprType::LeafData, T, void >::ToSql().
|
inline |
Definition at line 587 of file oral.h.
References And, ConstTrue, Equal, Geq, Greater, LeafData, LeafStaticPlaceholder, Leq, Less, Neq, Or, and LeechCraft::Util::Unreachable().
Referenced by LeechCraft::Util::oral::detail::ExprTree< Type, L, R >::ToSql().
constexpr auto LeechCraft::Util::oral::detail::AllTrees_v = AllOf<IsExprTree, L, R> |
constexpr auto LeechCraft::Util::oral::detail::AreComparableTypes = IsDetected_v<ComparableDetector, Seq, L, R> || IsDetected_v<ComparableDetector, Seq, R, L> |
constexpr auto LeechCraft::Util::oral::detail::ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {} |
Definition at line 818 of file oral.h.
Referenced by LeechCraft::Util::oral::detail::SelectWrapper< T, detail::SelectBehaviour::One >::operator()().
constexpr auto LeechCraft::Util::oral::detail::HasPKey = IsDetected_v<FindPKeyDetector, Seq> |
constexpr auto LeechCraft::Util::oral::detail::SeqIndices = std::make_index_sequence<SeqSize<S>> {} |