Public Types | Public Member Functions | Protected Attributes | Private Types

mln::internal::p_complex_piter_base_< I, S, P, E > Class Template Reference

Factoring class for iterators on mln::p_complex. More...

#include <p_complex_piter_base.hh>

Inheritance diagram for mln::internal::p_complex_piter_base_< I, S, P, E >:
Inheritance graph

List of all members.

Public Types

typedef Site_Proxy< void > category
typedef E exact_t
typedef S pset
 The associated site set type.
typedef S::site site
 The associated site type (as a Site_Proxy).
typedef S target
 The associated target type.

Public Member Functions

void change_target (const S &s)
 Change the site set targeted by this iterator.
void invalidate ()
bool is_valid () const
void next ()
 Go to the next element.
const S::psite & p_hook_ () const
 Hook to the current location.
const S & site_set () const
 Give the site set that this iterator browses.
void start ()
const S::psite & subj_ ()
 Give the subject (required by the Proxy interface).
const S *& target_ ()
 Give the target address. It might be 0.
const S::site & to_site () const
 Return the site it points to (as a Site_Proxy).

 p_complex_piter_base_ ()
 Construction and assignment.
 p_complex_piter_base_ (const S &pc)

Protected Attributes

iter iter_
 The underlying complex iterator.
S::psite p_
 The psite designated by this iterator.
const S * s_
 The target.

Private Types

typedef I iter
 The type of the underlying complex iterator.
typedef p_complex_piter_base_
< I, S, P, E > 
self_
typedef
internal::site_set_iterator_base
< S, E > 
super_



bool is_valid_ () const
 Manipulation.
void invalidate_ ()
 Invalidate the iterator.
void start_ ()
 Start an iteration.
void next_ ()
 Go to the next point.
void change_target_ (const S &pc)
 Change the target of the underlying complex iterator.
void update_ ()
 Update the psite.

Detailed Description

template<typename I, typename S, typename P, typename E>
class mln::internal::p_complex_piter_base_< I, S, P, E >

Factoring class for iterators on mln::p_complex.

Template Parameters:
I The type of the underlying complex iterator.
S The associated site set type.
P The associated site type.
E The type exact type of the iterator.

Definition at line 59 of file p_complex_piter_base.hh.


Member Typedef Documentation

template<typename E>
typedef Site_Proxy<void> mln::Site_Proxy< E >::category [inherited]
template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 173 of file object.hh.

template<typename I, typename S, typename P, typename E>
typedef I mln::internal::p_complex_piter_base_< I, S, P, E >::iter [private]

The type of the underlying complex iterator.

Definition at line 66 of file p_complex_piter_base.hh.

template<typename S, typename E>
typedef S mln::internal::site_set_iterator_base< S, E >::pset [inherited]

The associated site set type.

Definition at line 57 of file site_set_iterator_base.hh.

template<typename I, typename S, typename P, typename E>
typedef p_complex_piter_base_< I, S, P, E > mln::internal::p_complex_piter_base_< I, S, P, E >::self_ [private]
template<typename S, typename E>
typedef S ::site mln::internal::site_iterator_base< S, E >::site [inherited]

The associated site type (as a Site_Proxy).

Definition at line 64 of file site_iterator_base.hh.

template<typename I, typename S, typename P, typename E>
typedef internal::site_set_iterator_base< S, E > mln::internal::p_complex_piter_base_< I, S, P, E >::super_ [private]
template<typename S, typename E>
typedef S mln::internal::site_iterator_base< S, E >::target [inherited]

The associated target type.

Definition at line 61 of file site_iterator_base.hh.


Constructor & Destructor Documentation

template<typename I , typename S , typename P , typename E >
mln::internal::p_complex_piter_base_< I, S, P, E >::p_complex_piter_base_ (  )  [inline]

Construction and assignment.

Definition at line 120 of file p_complex_piter_base.hh.

References mln::Site_Iterator< E >::is_valid().

template<typename I , typename S, typename P , typename E >
mln::internal::p_complex_piter_base_< I, S, P, E >::p_complex_piter_base_ ( const S &  pc  )  [inline]

Member Function Documentation

template<typename S, typename E >
void mln::internal::site_set_iterator_base< S, E >::change_target ( const S &  s  )  [inline, inherited]
template<typename I , typename S, typename P , typename E >
void mln::internal::p_complex_piter_base_< I, S, P, E >::change_target_ ( const S &  pc  )  [inline]

Change the target of the underlying complex iterator.

Reimplemented from mln::internal::site_set_iterator_base< S, E >.

Definition at line 136 of file p_complex_piter_base.hh.

References mln::internal::p_complex_piter_base_< I, S, P, E >::iter_.

template<typename E >
void mln::Site_Iterator< E >::invalidate (  )  [inline, inherited]
template<typename I , typename S , typename P , typename E >
void mln::internal::p_complex_piter_base_< I, S, P, E >::invalidate_ (  )  [inline]

Invalidate the iterator.

Definition at line 152 of file p_complex_piter_base.hh.

References mln::internal::p_complex_piter_base_< I, S, P, E >::iter_.

template<typename E >
bool mln::Site_Iterator< E >::is_valid (  )  const [inline, inherited]
template<typename I , typename S , typename P , typename E >
bool mln::internal::p_complex_piter_base_< I, S, P, E >::is_valid_ (  )  const [inline]

Manipulation.

Test if the iterator is valid.

Definition at line 144 of file p_complex_piter_base.hh.

References mln::internal::p_complex_piter_base_< I, S, P, E >::iter_.

template<typename E >
void mln::Site_Iterator< E >::next (  )  [inline, inherited]

Go to the next element.

Warning:
This is a final method; iterator classes should not re-defined this method. The actual "next" operation has to be defined through the next_ method.
Precondition:
The iterator is valid.

Definition at line 92 of file site_iterator.hh.

References mln::exact(), and mln::Site_Iterator< E >::is_valid().

template<typename I , typename S , typename P , typename E >
void mln::internal::p_complex_piter_base_< I, S, P, E >::next_ (  )  [inline]
template<typename S , typename E >
const S::psite & mln::internal::site_set_iterator_base< S, E >::p_hook_ (  )  const [inline, inherited]

Hook to the current location.

Definition at line 125 of file site_set_iterator_base.hh.

template<typename S , typename E >
const S & mln::internal::site_set_iterator_base< S, E >::site_set (  )  const [inline, inherited]

Give the site set that this iterator browses.

Definition at line 93 of file site_set_iterator_base.hh.

References mln::internal::site_iterator_base< S, E >::s_.

Referenced by mln::internal::p_complex_piter_base_< I, S, P, E >::update_().

template<typename E >
void mln::Site_Iterator< E >::start (  )  [inline, inherited]

Definition at line 123 of file site_iterator.hh.

References mln::exact().

template<typename I , typename S , typename P , typename E >
void mln::internal::p_complex_piter_base_< I, S, P, E >::start_ (  )  [inline]
template<typename S , typename E >
const S::psite & mln::internal::site_iterator_base< S, E >::subj_ (  )  [inline, inherited]

Give the subject (required by the Proxy interface).

Reimplemented in mln::internal::site_relative_iterator_base< S, E, C >, mln::internal::site_relative_iterator_base< mixed_neighb< W >, neighb_bkd_niter< W >, mixed_neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, graph_window_piter< S, W, I >, W::center_t >, mln::internal::site_relative_iterator_base< neighb< W >, neighb_bkd_niter< W >, neighb< W >::psite >, mln::internal::site_relative_iterator_base< multiple< W, F >, multiple_qiter< W, F > >, mln::internal::site_relative_iterator_base< V, dpsites_bkd_piter< V > >, mln::internal::site_relative_iterator_base< neighb< W >, neighb_fwd_niter< W >, neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, graph_window_if_piter< S, W, I > >, mln::internal::site_relative_iterator_base< mixed_neighb< W >, neighb_fwd_niter< W >, mixed_neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, complex_window_fwd_piter< I, G, W > >, mln::internal::site_relative_iterator_base< W, complex_window_bkd_piter< I, G, W > >, mln::internal::site_relative_iterator_base< N, E, N::psite >, mln::internal::site_relative_iterator_base< multiple_size< n, W, F >, multiple_size_qiter< n, W, F > >, mln::internal::site_relative_iterator_base< N, complex_neighborhood_bkd_piter< I, G, N > >, mln::internal::site_relative_iterator_base< N, complex_neighborhood_fwd_piter< I, G, N > >, and mln::internal::site_relative_iterator_base< V, dpsites_fwd_piter< V > >.

Definition at line 119 of file site_iterator_base.hh.

References mln::exact().

template<typename S , typename E >
const S *& mln::internal::site_iterator_base< S, E >::target_ (  )  [inline, inherited]

Give the target address. It might be 0.

Definition at line 127 of file site_iterator_base.hh.

template<typename S , typename E >
const S::site & mln::internal::site_iterator_base< S, E >::to_site (  )  const [inline, inherited]
template<typename I , typename S , typename P , typename E >
void mln::internal::p_complex_piter_base_< I, S, P, E >::update_ (  )  [inline, private]

Member Data Documentation

template<typename I, typename S, typename P, typename E>
iter mln::internal::p_complex_piter_base_< I, S, P, E >::iter_ [protected]
template<typename S, typename E>
S ::psite mln::internal::site_set_iterator_base< S, E >::p_ [protected, inherited]
template<typename S, typename E>
const S* mln::internal::site_iterator_base< S, E >::s_ [protected, inherited]