momo  3.12
momo::DataTable< TColumnList, TDataTraits > Class Template Reference

momo::DataTable is similar to Boost.MultiIndex, but its API looks like ADO.NET DataTable. More...

#include <DataTable.h>

Classes

class  TryResult
 
class  UniqueIndexViolation
 

Public Types

typedef TColumnList ColumnList
 
typedef TDataTraits DataTraits
 
typedef ColumnList::MemManager MemManager
 
typedef ColumnList::Settings Settings
 
typedef ColumnList::Raw Raw
 
template<typename Item >
using Column = typename ColumnList::template Column< Item >
 
template<typename Item >
using Equality = DataEquality< Column< Item > >
 
template<typename... Items>
using Equalities = DataEquality< Column< Items >... >
 
template<typename Item , typename ItemArg >
using Assignment = DataAssignment< Column< Item >, ItemArg >
 
typedef internal::DataRow< ColumnList > Row
 
typedef internal::DataRowReference< ColumnList > RowReference
 
typedef RowReference::ConstReference ConstRowReference
 
typedef internal::DataSelection< RowReference, DataTraits > Selection
 
typedef Selection::ConstSelection ConstSelection
 
typedef internal::DataRowIterator< RawIterator, RowReference > Iterator
 
typedef Iterator::ConstIterator ConstIterator
 
typedef internal::DataRowPointer< internal::DataRowBounds< typename Indexes::UniqueHashRawBounds, RowReference > > RowHashPointer
 
typedef RowHashPointer::ConstPointer ConstRowHashPointer
 
typedef internal::DataRowBounds< typename Indexes::MultiHashRawBounds, RowReference > RowHashBounds
 
typedef RowHashBounds::ConstBounds ConstRowHashBounds
 
template<typename Item >
using ConstItemBounds = internal::DataConstItemBounds< ConstRowBounds, Item >
 
typedef Indexes::UniqueHashIndex UniqueHashIndex
 
typedef Indexes::MultiHashIndex MultiHashIndex
 

Public Member Functions

 DataTable ()
 
 DataTable (ColumnList &&columnList)
 
 DataTable (DataTable &&table) noexcept
 
 DataTable (const DataTable &table)
 
template<typename RowFilter >
 DataTable (const DataTable &table, const RowFilter &rowFilter)
 
 DataTable (const ConstSelection &selection)
 
 DataTable (const Selection &selection)
 
 ~DataTable () noexcept
 
DataTable & operator= (DataTable &&table) noexcept
 
DataTable & operator= (const DataTable &table)
 
void Swap (DataTable &table) noexcept
 
ConstIterator GetBegin () const noexcept
 
Iterator GetBegin () noexcept
 
ConstIterator GetEnd () const noexcept
 
Iterator GetEnd () noexcept
 
const ColumnList & GetColumnList () const noexcept
 
const MemManager & GetMemManager () const noexcept
 
MemManager & GetMemManager () noexcept
 
size_t GetCount () const noexcept
 
bool IsEmpty () const noexcept
 
void Clear () noexcept
 
void Reserve (size_t capacity)
 
const ConstRowReference operator[] (size_t rowNumber) const
 
const RowReference operator[] (size_t rowNumber)
 
template<typename Item >
bool ContainsColumn (const Column< Item > &column) const
 
template<typename Item >
ConstItemBounds< Item > GetColumnItems (const Column< Item > &column) const
 
Row NewRow ()
 
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
Row NewRow (Assignment< Item, ItemArg > assign, Assignment< Items, ItemArgs >... assigns)
 
Row NewRow (typename std::conditional< std::is_void< Raw >::value, std::piecewise_construct_t, Raw >::type &&srcRaw)
 
Row NewRow (const Row &row)
 
Row NewRow (ConstRowReference rowRef)
 
RowReference Add (Row &&row)
 
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
RowReference AddRow (Assignment< Item, ItemArg > assign, Assignment< Items, ItemArgs >... assigns)
 
TryResult TryAdd (Row &&row)
 
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
TryResult TryAddRow (Assignment< Item, ItemArg > assign, Assignment< Items, ItemArgs >... assigns)
 
RowReference Insert (size_t rowNumber, Row &&row)
 
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
RowReference InsertRow (size_t rowNumber, Assignment< Item, ItemArg > assign, Assignment< Items, ItemArgs >... assigns)
 
TryResult TryInsert (size_t rowNumber, Row &&row)
 
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
TryResult TryInsertRow (size_t rowNumber, Assignment< Item, ItemArg > assign, Assignment< Items, ItemArgs >... assigns)
 
RowReference Update (size_t rowNumber, Row &&row)
 
template<typename Item >
RowReference Update (ConstRowReference rowRef, const Column< Item > &column, internal::Identity< Item > &&newItem)
 
template<typename Item >
RowReference Update (ConstRowReference rowRef, const Column< Item > &column, const internal::Identity< Item > &newItem)
 
TryResult TryUpdate (size_t rowNumber, Row &&row)
 
template<typename Item >
TryResult TryUpdate (ConstRowReference rowRef, const Column< Item > &column, internal::Identity< Item > &&newItem)
 
template<typename Item >
TryResult TryUpdate (ConstRowReference rowRef, const Column< Item > &column, const internal::Identity< Item > &newItem)
 
template<typename RowIterator , typename RowSentinel >
void Assign (RowIterator begin, RowSentinel end)
 
template<typename RowIterator , typename RowSentinel >
void Remove (RowIterator begin, RowSentinel end)
 
template<typename RowFilter >
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, size_t > Remove (const RowFilter &rowFilter)
 
void Remove (ConstRowReference rowRef)
 
void Remove (size_t rowNumber, bool keepRowOrder=true)
 
Row Extract (ConstRowReference rowRef)
 
Row Extract (size_t rowNumber, bool keepRowOrder=true)
 
template<typename Item , typename... Items>
UniqueHashIndex GetUniqueHashIndex (const Column< Item > &column, const Column< Items > &... columns) const
 
template<typename Item , typename... Items>
MultiHashIndex GetMultiHashIndex (const Column< Item > &column, const Column< Items > &... columns) const
 
template<typename Item , typename... Items>
UniqueHashIndex AddUniqueHashIndex (const Column< Item > &column, const Column< Items > &... columns)
 
template<typename Item , typename... Items>
MultiHashIndex AddMultiHashIndex (const Column< Item > &column, const Column< Items > &... columns)
 
void RemoveUniqueHashIndexes () noexcept
 
void RemoveMultiHashIndexes () noexcept
 
ConstSelection SelectEmpty () const
 
Selection SelectEmpty ()
 
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, ConstSelection > Select (const RowFilter &rowFilter=RowFilter()) const
 
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, ConstSelection > Select (const RowFilter &rowFilter, Equality< Item > equal, Equality< Items >... equals) const
 
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, ConstSelection > Select (Equalities< Items... > equals, const RowFilter &rowFilter=RowFilter()) const
 
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, Selection > Select (const RowFilter &rowFilter=RowFilter())
 
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, Selection > Select (const RowFilter &rowFilter, Equality< Item > equal, Equality< Items >... equals)
 
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, Selection > Select (Equalities< Items... > equals, const RowFilter &rowFilter=RowFilter())
 
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, size_t > SelectCount (const RowFilter &rowFilter=RowFilter()) const
 
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, size_t > SelectCount (const RowFilter &rowFilter, Equality< Item > equal, Equality< Items >... equals) const
 
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, size_t > SelectCount (Equalities< Items... > equals, const RowFilter &rowFilter=RowFilter()) const
 
ConstRowHashPointer FindByUniqueHash (UniqueHashIndex uniqueHashIndex, const Row &row) const
 
RowHashPointer FindByUniqueHash (UniqueHashIndex uniqueHashIndex, const Row &row)
 
template<typename... Items>
ConstRowHashPointer FindByUniqueHash (Equalities< Items... > equals, UniqueHashIndex uniqueHashIndex=UniqueHashIndex::empty) const
 
template<typename... Items>
RowHashPointer FindByUniqueHash (Equalities< Items... > equals, UniqueHashIndex uniqueHashIndex=UniqueHashIndex::empty)
 
template<typename Item , typename... Items>
ConstRowHashPointer FindByUniqueHash (UniqueHashIndex uniqueHashIndex, Equality< Item > equal, Equality< Items >... equals) const
 
template<typename Item , typename... Items>
RowHashPointer FindByUniqueHash (UniqueHashIndex uniqueHashIndex, Equality< Item > equal, Equality< Items >... equals)
 
template<typename... Items>
ConstRowHashBounds FindByMultiHash (Equalities< Items... > equals, MultiHashIndex multiHashIndex=MultiHashIndex::empty) const
 
template<typename... Items>
RowHashBounds FindByMultiHash (Equalities< Items... > equals, MultiHashIndex multiHashIndex=MultiHashIndex::empty)
 
template<typename Item , typename... Items>
ConstRowHashBounds FindByMultiHash (MultiHashIndex multiHashIndex, Equality< Item > equal, Equality< Items >... equals) const
 
template<typename Item , typename... Items>
RowHashBounds FindByMultiHash (MultiHashIndex multiHashIndex, Equality< Item > equal, Equality< Items >... equals)
 
template<typename Item , typename... Items>
DataTable Project (ColumnList &&resColumnList, const Column< Item > &column, const Column< Items > &... columns) const
 
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, DataTable > Project (ColumnList &&resColumnList, const RowFilter &rowFilter, const Column< Item > &column, const Column< Items > &... columns) const
 
template<typename Item , typename... Items>
DataTable ProjectDistinct (ColumnList &&resColumnList, const Column< Item > &column, const Column< Items > &... columns) const
 
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf< internal::IsInvocable< const RowFilter &, bool, ConstRowReference >::value, DataTable > ProjectDistinct (ColumnList &&resColumnList, const RowFilter &rowFilter, const Column< Item > &column, const Column< Items > &... columns) const
 
RowReference MakeMutableReference (ConstRowReference rowRef)
 

Detailed Description

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
class momo::DataTable< TColumnList, TDataTraits >

momo::DataTable is similar to Boost.MultiIndex, but its API looks like ADO.NET DataTable.

Member Typedef Documentation

◆ Assignment

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg >
using momo::DataTable< TColumnList, TDataTraits >::Assignment = DataAssignment<Column<Item>, ItemArg>

◆ Column

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
using momo::DataTable< TColumnList, TDataTraits >::Column = typename ColumnList::template Column<Item>

◆ ColumnList

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef TColumnList momo::DataTable< TColumnList, TDataTraits >::ColumnList

◆ ConstItemBounds

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
using momo::DataTable< TColumnList, TDataTraits >::ConstItemBounds = internal::DataConstItemBounds<ConstRowBounds, Item>

◆ ConstIterator

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef Iterator::ConstIterator momo::DataTable< TColumnList, TDataTraits >::ConstIterator

◆ ConstRowHashBounds

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef RowHashBounds::ConstBounds momo::DataTable< TColumnList, TDataTraits >::ConstRowHashBounds

◆ ConstRowHashPointer

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef RowHashPointer::ConstPointer momo::DataTable< TColumnList, TDataTraits >::ConstRowHashPointer

◆ ConstRowReference

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef RowReference::ConstReference momo::DataTable< TColumnList, TDataTraits >::ConstRowReference

◆ ConstSelection

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef Selection::ConstSelection momo::DataTable< TColumnList, TDataTraits >::ConstSelection

◆ DataTraits

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef TDataTraits momo::DataTable< TColumnList, TDataTraits >::DataTraits

◆ Equalities

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename... Items>
using momo::DataTable< TColumnList, TDataTraits >::Equalities = DataEquality<Column<Items>...>

◆ Equality

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
using momo::DataTable< TColumnList, TDataTraits >::Equality = DataEquality<Column<Item> >

◆ Iterator

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataRowIterator<RawIterator, RowReference> momo::DataTable< TColumnList, TDataTraits >::Iterator

◆ MemManager

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef ColumnList::MemManager momo::DataTable< TColumnList, TDataTraits >::MemManager

◆ MultiHashIndex

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef Indexes::MultiHashIndex momo::DataTable< TColumnList, TDataTraits >::MultiHashIndex

◆ Raw

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef ColumnList::Raw momo::DataTable< TColumnList, TDataTraits >::Raw

◆ Row

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataRow<ColumnList> momo::DataTable< TColumnList, TDataTraits >::Row

◆ RowHashBounds

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataRowBounds< typename Indexes::MultiHashRawBounds, RowReference> momo::DataTable< TColumnList, TDataTraits >::RowHashBounds

◆ RowHashPointer

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataRowPointer<internal::DataRowBounds< typename Indexes::UniqueHashRawBounds, RowReference> > momo::DataTable< TColumnList, TDataTraits >::RowHashPointer

◆ RowReference

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataRowReference<ColumnList> momo::DataTable< TColumnList, TDataTraits >::RowReference

◆ Selection

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef internal::DataSelection<RowReference, DataTraits> momo::DataTable< TColumnList, TDataTraits >::Selection

◆ Settings

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef ColumnList::Settings momo::DataTable< TColumnList, TDataTraits >::Settings

◆ UniqueHashIndex

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
typedef Indexes::UniqueHashIndex momo::DataTable< TColumnList, TDataTraits >::UniqueHashIndex

Constructor & Destructor Documentation

◆ DataTable() [1/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( )
inlineexplicit

◆ DataTable() [2/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( ColumnList &&  columnList)
inlineexplicit

◆ DataTable() [3/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( DataTable< TColumnList, TDataTraits > &&  table)
inlinenoexcept

◆ DataTable() [4/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( const DataTable< TColumnList, TDataTraits > &  table)
inline

◆ DataTable() [5/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter >
momo::DataTable< TColumnList, TDataTraits >::DataTable ( const DataTable< TColumnList, TDataTraits > &  table,
const RowFilter &  rowFilter 
)
inlineexplicit

◆ DataTable() [6/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( const ConstSelection &  selection)
inlineexplicit

◆ DataTable() [7/7]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::DataTable ( const Selection &  selection)
inlineexplicit

◆ ~DataTable()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
momo::DataTable< TColumnList, TDataTraits >::~DataTable ( )
inlinenoexcept

Member Function Documentation

◆ Add()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
RowReference momo::DataTable< TColumnList, TDataTraits >::Add ( Row &&  row)
inline

◆ AddMultiHashIndex()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
MultiHashIndex momo::DataTable< TColumnList, TDataTraits >::AddMultiHashIndex ( const Column< Item > &  column,
const Column< Items > &...  columns 
)
inline

◆ AddRow()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
RowReference momo::DataTable< TColumnList, TDataTraits >::AddRow ( Assignment< Item, ItemArg >  assign,
Assignment< Items, ItemArgs >...  assigns 
)
inline

◆ AddUniqueHashIndex()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
UniqueHashIndex momo::DataTable< TColumnList, TDataTraits >::AddUniqueHashIndex ( const Column< Item > &  column,
const Column< Items > &...  columns 
)
inline

◆ Assign()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowIterator , typename RowSentinel >
void momo::DataTable< TColumnList, TDataTraits >::Assign ( RowIterator  begin,
RowSentinel  end 
)
inline

◆ Clear()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::Clear ( )
inlinenoexcept

◆ ContainsColumn()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
bool momo::DataTable< TColumnList, TDataTraits >::ContainsColumn ( const Column< Item > &  column) const
inline

◆ Extract() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::Extract ( ConstRowReference  rowRef)
inline

◆ Extract() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::Extract ( size_t  rowNumber,
bool  keepRowOrder = true 
)
inline

◆ FindByMultiHash() [1/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename... Items>
RowHashBounds momo::DataTable< TColumnList, TDataTraits >::FindByMultiHash ( Equalities< Items... >  equals,
MultiHashIndex  multiHashIndex = MultiHashIndex::empty 
)
inline

◆ FindByMultiHash() [2/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename... Items>
ConstRowHashBounds momo::DataTable< TColumnList, TDataTraits >::FindByMultiHash ( Equalities< Items... >  equals,
MultiHashIndex  multiHashIndex = MultiHashIndex::empty 
) const
inline

◆ FindByMultiHash() [3/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
RowHashBounds momo::DataTable< TColumnList, TDataTraits >::FindByMultiHash ( MultiHashIndex  multiHashIndex,
Equality< Item >  equal,
Equality< Items >...  equals 
)
inline

◆ FindByMultiHash() [4/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
ConstRowHashBounds momo::DataTable< TColumnList, TDataTraits >::FindByMultiHash ( MultiHashIndex  multiHashIndex,
Equality< Item >  equal,
Equality< Items >...  equals 
) const
inline

◆ FindByUniqueHash() [1/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename... Items>
RowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( Equalities< Items... >  equals,
UniqueHashIndex  uniqueHashIndex = UniqueHashIndex::empty 
)
inline

◆ FindByUniqueHash() [2/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename... Items>
ConstRowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( Equalities< Items... >  equals,
UniqueHashIndex  uniqueHashIndex = UniqueHashIndex::empty 
) const
inline

◆ FindByUniqueHash() [3/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
RowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( UniqueHashIndex  uniqueHashIndex,
const Row &  row 
)
inline

◆ FindByUniqueHash() [4/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
ConstRowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( UniqueHashIndex  uniqueHashIndex,
const Row &  row 
) const
inline

◆ FindByUniqueHash() [5/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
RowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( UniqueHashIndex  uniqueHashIndex,
Equality< Item >  equal,
Equality< Items >...  equals 
)
inline

◆ FindByUniqueHash() [6/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
ConstRowHashPointer momo::DataTable< TColumnList, TDataTraits >::FindByUniqueHash ( UniqueHashIndex  uniqueHashIndex,
Equality< Item >  equal,
Equality< Items >...  equals 
) const
inline

◆ GetBegin() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
ConstIterator momo::DataTable< TColumnList, TDataTraits >::GetBegin ( ) const
inlinenoexcept

◆ GetBegin() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Iterator momo::DataTable< TColumnList, TDataTraits >::GetBegin ( )
inlinenoexcept

◆ GetColumnItems()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
ConstItemBounds<Item> momo::DataTable< TColumnList, TDataTraits >::GetColumnItems ( const Column< Item > &  column) const
inline

◆ GetColumnList()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
const ColumnList& momo::DataTable< TColumnList, TDataTraits >::GetColumnList ( ) const
inlinenoexcept

◆ GetCount()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
size_t momo::DataTable< TColumnList, TDataTraits >::GetCount ( ) const
inlinenoexcept

◆ GetEnd() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
ConstIterator momo::DataTable< TColumnList, TDataTraits >::GetEnd ( ) const
inlinenoexcept

◆ GetEnd() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Iterator momo::DataTable< TColumnList, TDataTraits >::GetEnd ( )
inlinenoexcept

◆ GetMemManager() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
const MemManager& momo::DataTable< TColumnList, TDataTraits >::GetMemManager ( ) const
inlinenoexcept

◆ GetMemManager() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
MemManager& momo::DataTable< TColumnList, TDataTraits >::GetMemManager ( )
inlinenoexcept

◆ GetMultiHashIndex()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
MultiHashIndex momo::DataTable< TColumnList, TDataTraits >::GetMultiHashIndex ( const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ GetUniqueHashIndex()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
UniqueHashIndex momo::DataTable< TColumnList, TDataTraits >::GetUniqueHashIndex ( const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ Insert()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
RowReference momo::DataTable< TColumnList, TDataTraits >::Insert ( size_t  rowNumber,
Row &&  row 
)
inline

◆ InsertRow()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
RowReference momo::DataTable< TColumnList, TDataTraits >::InsertRow ( size_t  rowNumber,
Assignment< Item, ItemArg >  assign,
Assignment< Items, ItemArgs >...  assigns 
)
inline

◆ IsEmpty()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
bool momo::DataTable< TColumnList, TDataTraits >::IsEmpty ( ) const
inlinenoexcept

◆ MakeMutableReference()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
RowReference momo::DataTable< TColumnList, TDataTraits >::MakeMutableReference ( ConstRowReference  rowRef)
inline

◆ NewRow() [1/5]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::NewRow ( )
inline

◆ NewRow() [2/5]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
Row momo::DataTable< TColumnList, TDataTraits >::NewRow ( Assignment< Item, ItemArg >  assign,
Assignment< Items, ItemArgs >...  assigns 
)
inline

◆ NewRow() [3/5]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::NewRow ( const Row &  row)
inline

◆ NewRow() [4/5]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::NewRow ( ConstRowReference  rowRef)
inline

◆ NewRow() [5/5]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Row momo::DataTable< TColumnList, TDataTraits >::NewRow ( typename std::conditional< std::is_void< Raw >::value, std::piecewise_construct_t, Raw >::type &&  srcRaw)
inline

◆ operator=() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
DataTable& momo::DataTable< TColumnList, TDataTraits >::operator= ( const DataTable< TColumnList, TDataTraits > &  table)
inline

◆ operator=() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
DataTable& momo::DataTable< TColumnList, TDataTraits >::operator= ( DataTable< TColumnList, TDataTraits > &&  table)
inlinenoexcept

◆ operator[]() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
const RowReference momo::DataTable< TColumnList, TDataTraits >::operator[] ( size_t  rowNumber)
inline

◆ operator[]() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
const ConstRowReference momo::DataTable< TColumnList, TDataTraits >::operator[] ( size_t  rowNumber) const
inline

◆ Project() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
DataTable momo::DataTable< TColumnList, TDataTraits >::Project ( ColumnList &&  resColumnList,
const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ Project() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, DataTable> momo::DataTable< TColumnList, TDataTraits >::Project ( ColumnList &&  resColumnList,
const RowFilter &  rowFilter,
const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ ProjectDistinct() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename... Items>
DataTable momo::DataTable< TColumnList, TDataTraits >::ProjectDistinct ( ColumnList &&  resColumnList,
const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ ProjectDistinct() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, DataTable> momo::DataTable< TColumnList, TDataTraits >::ProjectDistinct ( ColumnList &&  resColumnList,
const RowFilter &  rowFilter,
const Column< Item > &  column,
const Column< Items > &...  columns 
) const
inline

◆ Remove() [1/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter >
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, size_t> momo::DataTable< TColumnList, TDataTraits >::Remove ( const RowFilter &  rowFilter)
inline

◆ Remove() [2/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::Remove ( ConstRowReference  rowRef)
inline

◆ Remove() [3/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowIterator , typename RowSentinel >
void momo::DataTable< TColumnList, TDataTraits >::Remove ( RowIterator  begin,
RowSentinel  end 
)
inline

◆ Remove() [4/4]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::Remove ( size_t  rowNumber,
bool  keepRowOrder = true 
)
inline

◆ RemoveMultiHashIndexes()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::RemoveMultiHashIndexes ( )
inlinenoexcept

◆ RemoveUniqueHashIndexes()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::RemoveUniqueHashIndexes ( )
inlinenoexcept

◆ Reserve()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::Reserve ( size_t  capacity)
inline

◆ Select() [1/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, Selection> momo::DataTable< TColumnList, TDataTraits >::Select ( const RowFilter &  rowFilter,
Equality< Item >  equal,
Equality< Items >...  equals 
)
inline

◆ Select() [2/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, ConstSelection> momo::DataTable< TColumnList, TDataTraits >::Select ( const RowFilter &  rowFilter,
Equality< Item >  equal,
Equality< Items >...  equals 
) const
inline

◆ Select() [3/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, Selection> momo::DataTable< TColumnList, TDataTraits >::Select ( const RowFilter &  rowFilter = RowFilter())
inline

◆ Select() [4/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, ConstSelection> momo::DataTable< TColumnList, TDataTraits >::Select ( const RowFilter &  rowFilter = RowFilter()) const
inline

◆ Select() [5/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, Selection> momo::DataTable< TColumnList, TDataTraits >::Select ( Equalities< Items... >  equals,
const RowFilter &  rowFilter = RowFilter() 
)
inline

◆ Select() [6/6]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, ConstSelection> momo::DataTable< TColumnList, TDataTraits >::Select ( Equalities< Items... >  equals,
const RowFilter &  rowFilter = RowFilter() 
) const
inline

◆ SelectCount() [1/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter , typename Item , typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, size_t> momo::DataTable< TColumnList, TDataTraits >::SelectCount ( const RowFilter &  rowFilter,
Equality< Item >  equal,
Equality< Items >...  equals 
) const
inline

◆ SelectCount() [2/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, size_t> momo::DataTable< TColumnList, TDataTraits >::SelectCount ( const RowFilter &  rowFilter = RowFilter()) const
inline

◆ SelectCount() [3/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename RowFilter = EmptyRowFilter, typename... Items>
internal::EnableIf<internal::IsInvocable<const RowFilter&, bool, ConstRowReference>::value, size_t> momo::DataTable< TColumnList, TDataTraits >::SelectCount ( Equalities< Items... >  equals,
const RowFilter &  rowFilter = RowFilter() 
) const
inline

◆ SelectEmpty() [1/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
Selection momo::DataTable< TColumnList, TDataTraits >::SelectEmpty ( )
inline

◆ SelectEmpty() [2/2]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
ConstSelection momo::DataTable< TColumnList, TDataTraits >::SelectEmpty ( ) const
inline

◆ Swap()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
void momo::DataTable< TColumnList, TDataTraits >::Swap ( DataTable< TColumnList, TDataTraits > &  table)
inlinenoexcept

◆ TryAdd()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
TryResult momo::DataTable< TColumnList, TDataTraits >::TryAdd ( Row &&  row)
inline

◆ TryAddRow()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
TryResult momo::DataTable< TColumnList, TDataTraits >::TryAddRow ( Assignment< Item, ItemArg >  assign,
Assignment< Items, ItemArgs >...  assigns 
)
inline

◆ TryInsert()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
TryResult momo::DataTable< TColumnList, TDataTraits >::TryInsert ( size_t  rowNumber,
Row &&  row 
)
inline

◆ TryInsertRow()

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item , typename ItemArg , typename... Items, typename... ItemArgs>
TryResult momo::DataTable< TColumnList, TDataTraits >::TryInsertRow ( size_t  rowNumber,
Assignment< Item, ItemArg >  assign,
Assignment< Items, ItemArgs >...  assigns 
)
inline

◆ TryUpdate() [1/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
TryResult momo::DataTable< TColumnList, TDataTraits >::TryUpdate ( ConstRowReference  rowRef,
const Column< Item > &  column,
const internal::Identity< Item > &  newItem 
)
inline

◆ TryUpdate() [2/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
TryResult momo::DataTable< TColumnList, TDataTraits >::TryUpdate ( ConstRowReference  rowRef,
const Column< Item > &  column,
internal::Identity< Item > &&  newItem 
)
inline

◆ TryUpdate() [3/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
TryResult momo::DataTable< TColumnList, TDataTraits >::TryUpdate ( size_t  rowNumber,
Row &&  row 
)
inline

◆ Update() [1/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
RowReference momo::DataTable< TColumnList, TDataTraits >::Update ( ConstRowReference  rowRef,
const Column< Item > &  column,
const internal::Identity< Item > &  newItem 
)
inline

◆ Update() [2/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
template<typename Item >
RowReference momo::DataTable< TColumnList, TDataTraits >::Update ( ConstRowReference  rowRef,
const Column< Item > &  column,
internal::Identity< Item > &&  newItem 
)
inline

◆ Update() [3/3]

template<typename TColumnList = DataColumnList<>, typename TDataTraits = DataTraits>
RowReference momo::DataTable< TColumnList, TDataTraits >::Update ( size_t  rowNumber,
Row &&  row 
)
inline

The documentation for this class was generated from the following file: