libpqxx
The C++ client library for PostgreSQL
pqxx::internal::stream_query_iterator< TYPE > Class Template Referencefinal

Minimal iterator for stream_query. More...

#include <stream_query_impl.hxx>

Public Types

using value_type = std::tuple< TYPE... >
 
using difference_type = long
 

Public Member Functions

 stream_query_iterator (stream_t &home, sl loc)
 
 stream_query_iterator (stream_query_iterator const &)=delete
 
 stream_query_iterator (stream_query_iterator &&)=delete
 
 ~stream_query_iterator ()=default
 
stream_query_iteratoroperator= (stream_query_iterator const &)=delete
 
stream_query_iteratoroperator= (stream_query_iterator &&)=delete
 
stream_query_iteratoroperator++ () &
 Pre-increment. More...
 
value_type operator* () const
 Dereference. There's no caching in here, so don't repeat calls. More...
 
bool operator== (stream_query_end_iterator) const noexcept
 Are we at the end? More...
 
bool operator!= (stream_query_end_iterator) const noexcept
 Do we have more iterations to go? More...
 

Friends

bool operator== (stream_query_end_iterator, stream_query_iterator const &i)
 
bool operator!= (stream_query_end_iterator, stream_query_iterator const &i)
 

Detailed Description

template<typename... TYPE>
class pqxx::internal::stream_query_iterator< TYPE >

Minimal iterator for stream_query.

Just barely enough to support range-based "for" loops on stream_query. It's so minimal, it isn't even an input_iterator.

Do not assume that anything beyond that works: post-increment, comparison to anything other than end(), assignment between iterators on different streams, and probably several more common and sensible things to do with iterators are all anathema here.

Member Typedef Documentation

◆ difference_type

template<typename... TYPE>
using pqxx::internal::stream_query_iterator< TYPE >::difference_type = long

◆ value_type

template<typename... TYPE>
using pqxx::internal::stream_query_iterator< TYPE >::value_type = std::tuple<TYPE...>

Constructor & Destructor Documentation

◆ stream_query_iterator() [1/3]

template<typename... TYPE>
pqxx::internal::stream_query_iterator< TYPE >::stream_query_iterator ( stream_t home,
sl  loc 
)
inline

◆ stream_query_iterator() [2/3]

template<typename... TYPE>
pqxx::internal::stream_query_iterator< TYPE >::stream_query_iterator ( stream_query_iterator< TYPE > const &  )
delete

◆ stream_query_iterator() [3/3]

template<typename... TYPE>
pqxx::internal::stream_query_iterator< TYPE >::stream_query_iterator ( stream_query_iterator< TYPE > &&  )
delete

◆ ~stream_query_iterator()

template<typename... TYPE>
pqxx::internal::stream_query_iterator< TYPE >::~stream_query_iterator ( )
default

Member Function Documentation

◆ operator!=()

template<typename... TYPE>
bool pqxx::internal::stream_query_iterator< TYPE >::operator!= ( stream_query_end_iterator  ) const
inlinenoexcept

Do we have more iterations to go?

◆ operator*()

template<typename... TYPE>
value_type pqxx::internal::stream_query_iterator< TYPE >::operator* ( ) const
inline

Dereference. There's no caching in here, so don't repeat calls.

◆ operator++()

template<typename... TYPE>
stream_query_iterator& pqxx::internal::stream_query_iterator< TYPE >::operator++ ( ) &
inline

Pre-increment.

We don't even support post-increment, because we only do what's needed for range-based for loops.

◆ operator=() [1/2]

template<typename... TYPE>
stream_query_iterator& pqxx::internal::stream_query_iterator< TYPE >::operator= ( stream_query_iterator< TYPE > &&  )
delete

◆ operator=() [2/2]

template<typename... TYPE>
stream_query_iterator& pqxx::internal::stream_query_iterator< TYPE >::operator= ( stream_query_iterator< TYPE > const &  )
delete

◆ operator==()

template<typename... TYPE>
bool pqxx::internal::stream_query_iterator< TYPE >::operator== ( stream_query_end_iterator  ) const
inlinenoexcept

Are we at the end?

Friends And Related Function Documentation

◆ operator!=

template<typename... TYPE>
bool operator!= ( stream_query_end_iterator  ,
stream_query_iterator< TYPE > const &  i 
)
friend

◆ operator==

template<typename... TYPE>
bool operator== ( stream_query_end_iterator  ,
stream_query_iterator< TYPE > const &  i 
)
friend

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