RxCpp
The Reactive Extensions for Native (RxCpp) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators in both C and C++.
Public Types | Public Member Functions | List of all members
cpplinq::linq_driver< Collection > Class Template Reference

#include <linq.hpp>

Public Types

typedef cursor_iterator< typename Collection::cursor > iterator
 
typedef Collection::cursor cursor
 

Public Member Functions

 linq_driver (Collection c)
 
template<class KeyFn >
linq_driver< linq_groupby< Collection, KeyFn > > groupby (KeyFn fn)
 
template<class Selector >
linq_driver< linq_select< Collection, Selector > > select (Selector sel) const
 
template<class Fn >
linq_driver< linq_select_many< Collection, Fn, detail::default_select_many_selector > > select_many (Fn fn) const
 
template<class Fn , class Fn2 >
linq_driver< linq_select_many< Collection, Fn, Fn2 > > select_many (Fn fn, Fn2 fn2) const
 
template<class Predicate >
linq_driver< linq_where< Collection, Predicate > > where (Predicate p) const
 
template<class Fn >
element_type aggregate (Fn fn) const
 
template<class T , class Fn >
aggregate (T initialValue, Fn fn) const
 
bool any () const
 
template<class Predicate >
bool any (Predicate p) const
 
template<class Predicate >
bool all (Predicate p) const
 
template<class U >
auto cast () -> decltype(static_cast< linq_driver * >(0) ->select(detail::cast_to< U >()))
 
bool contains (const typename Collection::cursor::element_type &value) const
 
std::iterator_traits< iterator >::difference_type count () const
 
template<class Predicate >
std::iterator_traits< iterator >::difference_type count (Predicate p) const
 
reference_type element_at (std::size_t ix) const
 
element_type element_at_or_default (std::size_t ix) const
 
bool empty () const
 
reference_type first () const
 
template<class Predicate >
reference_type first (Predicate pred) const
 
element_type first_or_default () const
 
template<class Predicate >
element_type first_or_default (Predicate pred) const
 
std::conditional< std::is_convertible< typename Collection::cursor::cursor_category, forward_cursor_tag >::value, reference_type, element_type >::type last () const
 
template<class Predicate >
reference_type last (Predicate pred) const
 
element_type last_or_default () const
 
template<class Predicate >
element_type last_or_default (Predicate pred) const
 
reference_type max () const
 
template<class Compare >
reference_type max (Compare less) const
 
reference_type min () const
 
template<class Compare >
reference_type min (Compare less) const
 
linq_driver< linq_skip< Collection > > skip (std::size_t n) const
 
template<typename ITEM = typename element_type>
std::enable_if< std::is_default_constructible< ITEM >::value, ITEM >::type sum () const
 
element_type sum (typename element_type seed) const
 
template<typename Selector , typename Result = std::result_of<Selector(typename element_type)>::type>
std::enable_if< std::is_default_constructible< Result >::value, Result >::type sum (Selector sel) const
 
template<typename Selector , typename Result = std::result_of<Selector(typename element_type)>::type>
Result sum (Selector sel, Result seed) const
 
linq_driver< linq_take< Collection > > take (std::size_t n) const
 
std::vector< typename Collection::cursor::element_type > to_vector () const
 
std::list< typename Collection::cursor::element_type > to_list () const
 
std::set< typename Collection::cursor::element_type > to_set () const
 
iterator begin () const
 
iterator end () const
 
linq_driveroperator= (const linq_driver &other)
 
template<class TC2 >
linq_driveroperator= (const linq_driver< TC2 > &other)
 
std::iterator_traits< iterator >::reference operator[] (std::size_t ix) const
 
cursor get_cursor ()
 
linq_driver< dynamic_collection< typename Collection::cursor::reference_type > > late_bind () const
 

Member Typedef Documentation

template<class Collection>
typedef Collection::cursor cpplinq::linq_driver< Collection >::cursor
template<class Collection>
typedef cursor_iterator<typename Collection::cursor> cpplinq::linq_driver< Collection >::iterator

Constructor & Destructor Documentation

template<class Collection>
cpplinq::linq_driver< Collection >::linq_driver ( Collection  c)
inline

Member Function Documentation

template<class Collection>
template<class Fn >
element_type cpplinq::linq_driver< Collection >::aggregate ( Fn  fn) const
inline
template<class Collection>
template<class T , class Fn >
T cpplinq::linq_driver< Collection >::aggregate ( initialValue,
Fn  fn 
) const
inline
template<class Collection>
template<class Predicate >
bool cpplinq::linq_driver< Collection >::all ( Predicate  p) const
inline
template<class Collection>
bool cpplinq::linq_driver< Collection >::any ( ) const
inline
template<class Collection>
template<class Predicate >
bool cpplinq::linq_driver< Collection >::any ( Predicate  p) const
inline
template<class Collection>
iterator cpplinq::linq_driver< Collection >::begin ( ) const
inline
template<class Collection>
template<class U >
auto cpplinq::linq_driver< Collection >::cast ( ) -> decltype(static_cast<linq_driver*>(0)->select(detail::cast_to<U>()))
inline
template<class Collection>
bool cpplinq::linq_driver< Collection >::contains ( const typename Collection::cursor::element_type &  value) const
inline
template<class Collection>
std::iterator_traits<iterator>::difference_type cpplinq::linq_driver< Collection >::count ( ) const
inline
template<class Collection>
template<class Predicate >
std::iterator_traits<iterator>::difference_type cpplinq::linq_driver< Collection >::count ( Predicate  p) const
inline
template<class Collection>
reference_type cpplinq::linq_driver< Collection >::element_at ( std::size_t  ix) const
inline
template<class Collection>
element_type cpplinq::linq_driver< Collection >::element_at_or_default ( std::size_t  ix) const
inline
template<class Collection>
bool cpplinq::linq_driver< Collection >::empty ( ) const
inline
template<class Collection>
iterator cpplinq::linq_driver< Collection >::end ( ) const
inline
template<class Collection>
reference_type cpplinq::linq_driver< Collection >::first ( ) const
inline
template<class Collection>
template<class Predicate >
reference_type cpplinq::linq_driver< Collection >::first ( Predicate  pred) const
inline
template<class Collection>
element_type cpplinq::linq_driver< Collection >::first_or_default ( ) const
inline
template<class Collection>
template<class Predicate >
element_type cpplinq::linq_driver< Collection >::first_or_default ( Predicate  pred) const
inline
template<class Collection>
cursor cpplinq::linq_driver< Collection >::get_cursor ( )
inline
template<class Collection>
template<class KeyFn >
linq_driver< linq_groupby<Collection, KeyFn> > cpplinq::linq_driver< Collection >::groupby ( KeyFn  fn)
inline
template<class Collection>
std::conditional< std::is_convertible< typename Collection::cursor::cursor_category, forward_cursor_tag>::value, reference_type, element_type>::type cpplinq::linq_driver< Collection >::last ( ) const
inline
template<class Collection>
template<class Predicate >
reference_type cpplinq::linq_driver< Collection >::last ( Predicate  pred) const
inline
template<class Collection>
element_type cpplinq::linq_driver< Collection >::last_or_default ( ) const
inline
template<class Collection>
template<class Predicate >
element_type cpplinq::linq_driver< Collection >::last_or_default ( Predicate  pred) const
inline
template<class Collection>
linq_driver< dynamic_collection<typename Collection::cursor::reference_type> > cpplinq::linq_driver< Collection >::late_bind ( ) const
inline
template<class Collection>
reference_type cpplinq::linq_driver< Collection >::max ( ) const
inline
template<class Collection>
template<class Compare >
reference_type cpplinq::linq_driver< Collection >::max ( Compare  less) const
inline
template<class Collection>
reference_type cpplinq::linq_driver< Collection >::min ( ) const
inline
template<class Collection>
template<class Compare >
reference_type cpplinq::linq_driver< Collection >::min ( Compare  less) const
inline
template<class Collection>
linq_driver& cpplinq::linq_driver< Collection >::operator= ( const linq_driver< Collection > &  other)
inline
template<class Collection>
template<class TC2 >
linq_driver& cpplinq::linq_driver< Collection >::operator= ( const linq_driver< TC2 > &  other)
inline
template<class Collection>
std::iterator_traits<iterator>::reference cpplinq::linq_driver< Collection >::operator[] ( std::size_t  ix) const
inline
template<class Collection>
template<class Selector >
linq_driver< linq_select<Collection, Selector> > cpplinq::linq_driver< Collection >::select ( Selector  sel) const
inline
template<class Collection>
template<class Fn >
linq_driver< linq_select_many<Collection, Fn, detail::default_select_many_selector> > cpplinq::linq_driver< Collection >::select_many ( Fn  fn) const
inline
template<class Collection>
template<class Fn , class Fn2 >
linq_driver< linq_select_many<Collection, Fn, Fn2> > cpplinq::linq_driver< Collection >::select_many ( Fn  fn,
Fn2  fn2 
) const
inline
template<class Collection>
linq_driver<linq_skip<Collection> > cpplinq::linq_driver< Collection >::skip ( std::size_t  n) const
inline
template<class Collection>
template<typename ITEM = typename element_type>
std::enable_if<std::is_default_constructible<ITEM>::value, ITEM>::type cpplinq::linq_driver< Collection >::sum ( ) const
inline
template<class Collection>
element_type cpplinq::linq_driver< Collection >::sum ( typename element_type  seed) const
inline
template<class Collection>
template<typename Selector , typename Result = std::result_of<Selector(typename element_type)>::type>
std::enable_if<std::is_default_constructible<Result>::value, Result>::type cpplinq::linq_driver< Collection >::sum ( Selector  sel) const
inline
template<class Collection>
template<typename Selector , typename Result = std::result_of<Selector(typename element_type)>::type>
Result cpplinq::linq_driver< Collection >::sum ( Selector  sel,
Result  seed 
) const
inline
template<class Collection>
linq_driver<linq_take<Collection> > cpplinq::linq_driver< Collection >::take ( std::size_t  n) const
inline
template<class Collection>
std::list<typename Collection::cursor::element_type> cpplinq::linq_driver< Collection >::to_list ( ) const
inline
template<class Collection>
std::set<typename Collection::cursor::element_type> cpplinq::linq_driver< Collection >::to_set ( ) const
inline
template<class Collection>
std::vector<typename Collection::cursor::element_type> cpplinq::linq_driver< Collection >::to_vector ( ) const
inline
template<class Collection>
template<class Predicate >
linq_driver< linq_where<Collection, Predicate> > cpplinq::linq_driver< Collection >::where ( Predicate  p) const
inline

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