template<typename Type, typename Map Map, typename FSched, typename... Uid>
gtopt::ArrayIndexTraits struct

Base classes

struct InputTraits
Input data access traits.
struct ArrayIndexBase

Public types

template<typename... Uid>
using array_table_vector_uid_idx_t = std::tuple<array_uid_idx_map_t<Uid...>, table_uid_idx_map_t<Uid...>, vector_uid_idx_t<Uid...>>
template<typename... Uid>
using array_uid_idx_map_t = base_map_t<CFNameUid, arrow_array_uid_idx_t<Uid...>>
using array_vector_uid_idx_v = InputTraits::array_vector_uid_idx_v<Uid...>
template<typename... Uid>
using arrow_array_uid_idx_t = std::pair<ArrowChunkedArray, ArrowUidIdx<Uid...>>
template<typename... Uid>
using arrow_table_uid_idx_t = std::tuple<ArrowTable, ArrowUidIdx<Uid...>>
template<typename... Uid>
using ArrowUidIdx = UidToArrowIdx<Uid...>::UidIdx
template<typename Key, typename Value Value>
using base_map_t = gtopt::flat_map<Key, Value>
using CFName = std::tuple<ClassNameType, FieldNameType>
using CFNameUid = std::tuple<ClassNameType, FieldNameType, Uid>
using ClassNameType = std::string_view
using FieldNameType = std::string_view
using file_sched = FileSched
template<typename... Uid>
using idx_key_t = UidToVectorIdx<Uid...>::IndexKey
template<typename value_type, typename... Uid>
using idx_vector_t = mvector_traits<value_type, idx_key_t<Uid...>>::vector_type
template<typename... Uid>
using table_uid_idx_map_t = base_map_t<CFName, arrow_table_uid_idx_t<Uid...>>
using uid_tuple = std::tuple<Uid...>
using value_type = Type
using vector_type = InputTraits::idx_vector_t<value_type, Uid...>
template<typename... Uid>
using vector_uid_idx_t = VectorUidIdx<Uid...>
template<typename... Uid>
using VectorUidIdx = UidToVectorIdx<Uid...>::UidIdx

Public static functions

template<typename Type, typename RType RType = Type, typename FSched, typename UidIdx, typename AccessOper AccessOper, typename... Uid>
static auto access_sched(const FSched& sched, const UidIdx& uid_idx, AccessOper access_oper, Uid... uid) -> RType -> constexpr auto
template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static auto at_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> Type -> constexpr auto
template<typename... Uid>
static auto get_arrow_index(const SystemContext& system_context, std::string_view cname, std::string_view fname, const Id& id, auto& array_map, auto& table_map) -> constexpr auto
static auto make_array_index(const auto& system_context, std::string_view class_name, Map& array_table_map, const FSched& sched, const Id& id) -> array_vector_uid_idx_v -> constexpr auto
template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static auto optval_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> std::optional< Type > -> constexpr auto
static auto read_arrow_table(const SystemContext& sc, std::string_view cname, std::string_view fname) -> ArrowTable -> auto

Typedef documentation

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::array_table_vector_uid_idx_t = std::tuple<array_uid_idx_map_t<Uid...>, table_uid_idx_map_t<Uid...>, vector_uid_idx_t<Uid...>>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::array_uid_idx_map_t = base_map_t<CFNameUid, arrow_array_uid_idx_t<Uid...>>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::arrow_array_uid_idx_t = std::pair<ArrowChunkedArray, ArrowUidIdx<Uid...>>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::arrow_table_uid_idx_t = std::tuple<ArrowTable, ArrowUidIdx<Uid...>>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::ArrowUidIdx = UidToArrowIdx<Uid...>::UidIdx

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename Key, typename Value Value>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::base_map_t = gtopt::flat_map<Key, Value>

template<typename Type, typename Map Map, typename FSched, typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::CFName = std::tuple<ClassNameType, FieldNameType>

template<typename Type, typename Map Map, typename FSched, typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::CFNameUid = std::tuple<ClassNameType, FieldNameType, Uid>

template<typename Type, typename Map Map, typename FSched, typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::ClassNameType = std::string_view

template<typename Type, typename Map Map, typename FSched, typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::FieldNameType = std::string_view

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::idx_key_t = UidToVectorIdx<Uid...>::IndexKey

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename value_type, typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::idx_vector_t = mvector_traits<value_type, idx_key_t<Uid...>>::vector_type

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::table_uid_idx_map_t = base_map_t<CFName, arrow_table_uid_idx_t<Uid...>>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::vector_uid_idx_t = VectorUidIdx<Uid...>

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename... Uid>
using gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::VectorUidIdx = UidToVectorIdx<Uid...>::UidIdx

Function documentation

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename Type, typename RType RType = Type, typename FSched, typename UidIdx, typename AccessOper AccessOper, typename... Uid>
static constexpr auto gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::access_sched(const FSched& sched, const UidIdx& uid_idx, AccessOper access_oper, Uid... uid) -> RType

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static constexpr auto gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::at_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> Type

template<typename Type, typename Map Map, typename FSched, typename... Uid> template<typename Type, typename FSched, typename UidIdx, typename... Uid>
static constexpr auto gtopt::ArrayIndexTraits<Type, Map, FSched, Uid>::optval_sched(const FSched& sched, const UidIdx& uid_idx, Uid... uid) -> std::optional< Type >