#include <multiple.hh>
Public Types | |
typedef Site_Proxy< void > | category |
typedef multiple_qiter< W, F > | exact_t |
typedef multiple< W, F >::site | site |
The associated site type (as a Site_Proxy). | |
typedef multiple< W, F > | target |
The associated target type. | |
Public Member Functions | |
const typename multiple< W, F > ::psite & | center () const |
The psite around which this iterator moves. | |
void | center_at (const P &c) |
void | change_target (const multiple< W, F > &w) |
Overridden to initialize size_. | |
void | change_target (const multiple< W, F > &s) |
Change the site set targeted by this iterator. | |
W::psite | compute_p_ () const |
Compute the current psite. | |
void | do_next_ () |
Go to the next point. | |
void | do_start_ () |
Start an iteration. | |
template<typename Pref > | |
void | init_ (const multiple< W, F > &w, const Pref &c) |
Delegated initialization. | |
void | invalidate () |
void | invalidate_ () |
Invalidate the iterator. | |
bool | is_valid () const |
bool | is_valid_ () const |
Test the iterator validity. | |
template<typename Pref > | |
multiple_qiter (const multiple< W, F > &w, const Pref &c) | |
multiple_qiter () | |
void | next () |
Go to the next element. | |
void | next_ () |
Go to the next point. | |
const multiple< W, F >::psite & | p_hook_ () const |
Hook to the current location. | |
const multiple< W, F > & | site_set () const |
Give the site set (neighborhood or window) that this iterator browses. | |
void | start () |
void | start_ () |
Start an iteration. | |
const multiple< W, F >::psite & | subj_ () |
This overriding is very useful: it adds a test to prevent getting an invalid iterator when its center has moved. | |
const multiple< W, F > *& | target_ () |
Give the target address. It might be 0. | |
const multiple< W, F >::site & | to_site () const |
Return the site it points to (as a Site_Proxy). | |
multiple_qiter< W, F > & | update () |
Warning: this method is an advanced tool provided for very special occasions; if you are a regular user, you should never use it! Calling this method forces this relative iterator to synchronize with its center when it has just moved and when the relative iterator still makes sense. | |
Protected Attributes | |
const typename multiple< W, F > ::psite * | c_ |
A pointer to the center psite around which this iterator moves. | |
const multiple< W, F > * | s_ |
The target. | |
Private Types | |
typedef multiple_qiter< W, F > | self_ |
typedef internal::site_relative_iterator_base < multiple< W, F >, self_ > | super_ |
Private Attributes | |
unsigned | i_ |
unsigned | size_ |
Definition at line 133 of file multiple.hh.
typedef Site_Proxy<void> mln::Site_Proxy< multiple_qiter< W, F > >::category [inherited] |
Reimplemented from mln::Proxy< multiple_qiter< W, F > >.
Definition at line 63 of file site_proxy.hh.
typedef multiple_qiter< W, F > mln::Object< multiple_qiter< W, F > >::exact_t [inherited] |
typedef multiple_qiter<W,F> mln::win::multiple_qiter< W, F >::self_ [private] |
Definition at line 137 of file multiple.hh.
typedef multiple< W, F > ::site mln::internal::site_iterator_base< multiple< W, F > , multiple_qiter< W, F > >::site [inherited] |
The associated site type (as a Site_Proxy).
Definition at line 64 of file site_iterator_base.hh.
typedef internal::site_relative_iterator_base< multiple<W,F>, self_ > mln::win::multiple_qiter< W, F >::super_ [private] |
Reimplemented from mln::internal::site_iterator_base< multiple< W, F >, multiple_qiter< W, F > >.
Definition at line 138 of file multiple.hh.
typedef multiple< W, F > mln::internal::site_iterator_base< multiple< W, F > , multiple_qiter< W, F > >::target [inherited] |
The associated target type.
Definition at line 61 of file site_iterator_base.hh.
mln::win::multiple_qiter< W, F >::multiple_qiter | ( | ) | [inline] |
Definition at line 314 of file multiple.hh.
mln::win::multiple_qiter< W, F >::multiple_qiter | ( | const multiple< W, F > & | w, | |
const Pref & | c | |||
) | [inline] |
Definition at line 321 of file multiple.hh.
References mln::win::multiple_qiter< W, F >::init_().
const typename multiple< W, F > ::psite & mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::center | ( | ) | const [inherited] |
The psite around which this iterator moves.
void mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::center_at | ( | const P & | c | ) | [inherited] |
Referenced by mln::win::multiple_qiter< W, F >::init_().
void mln::win::multiple_qiter< W, F >::change_target | ( | const multiple< W, F > & | w | ) | [inline] |
Overridden to initialize size_.
Definition at line 341 of file multiple.hh.
References mln::internal::site_relative_iterator_base< S, E, C >::change_target(), and mln::win::multiple< W, F >::size().
Referenced by mln::win::multiple_qiter< W, F >::init_().
void mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::change_target | ( | const multiple< W, F > & | s | ) | [inherited] |
Change the site set targeted by this iterator.
W::psite mln::win::multiple_qiter< W, F >::compute_p_ | ( | ) | const [inline] |
Compute the current psite.
Definition at line 382 of file multiple.hh.
void mln::win::multiple_qiter< W, F >::do_next_ | ( | ) | [inline] |
Go to the next point.
Definition at line 374 of file multiple.hh.
void mln::win::multiple_qiter< W, F >::do_start_ | ( | ) | [inline] |
Start an iteration.
Definition at line 366 of file multiple.hh.
void mln::win::multiple_qiter< W, F >::init_ | ( | const multiple< W, F > & | w, | |
const Pref & | c | |||
) | [inline] |
Delegated initialization.
Definition at line 330 of file multiple.hh.
References mln::internal::site_relative_iterator_base< multiple< W, F >, multiple_qiter< W, F > >::center_at(), and mln::win::multiple_qiter< W, F >::change_target().
Referenced by mln::win::multiple_qiter< W, F >::multiple_qiter().
void mln::Site_Iterator< multiple_qiter< W, F > >::invalidate | ( | ) | [inherited] |
void mln::win::multiple_qiter< W, F >::invalidate_ | ( | ) | [inline] |
Invalidate the iterator.
Definition at line 358 of file multiple.hh.
bool mln::Site_Iterator< multiple_qiter< W, F > >::is_valid | ( | ) | const [inherited] |
bool mln::win::multiple_qiter< W, F >::is_valid_ | ( | ) | const [inline] |
Test the iterator validity.
Definition at line 350 of file multiple.hh.
void mln::Site_Iterator< multiple_qiter< W, F > >::next | ( | ) | [inherited] |
Go to the next element.
void mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::next_ | ( | ) | [inherited] |
Go to the next point.
const multiple< W, F > ::psite& mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::p_hook_ | ( | ) | const [inherited] |
Hook to the current location.
const multiple< W, F > & mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::site_set | ( | ) | const [inherited] |
Give the site set (neighborhood or window) that this iterator browses.
void mln::Site_Iterator< multiple_qiter< W, F > >::start | ( | ) | [inherited] |
void mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::start_ | ( | ) | [inherited] |
Start an iteration.
const multiple< W, F > ::psite& mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::subj_ | ( | ) | [inherited] |
This overriding is very useful: it adds a test to prevent getting an invalid iterator when its center has moved.
Some sub-classes provide an update() method for the client to say that she really want to read the iterator just after the center has changed.
Reimplemented from mln::internal::site_iterator_base< multiple< W, F >, multiple_qiter< W, F > >.
const multiple< W, F > *& mln::internal::site_iterator_base< multiple< W, F > , multiple_qiter< W, F > >::target_ | ( | ) | [inherited] |
Give the target address. It might be 0.
const multiple< W, F > ::site& mln::internal::site_iterator_base< multiple< W, F > , multiple_qiter< W, F > >::to_site | ( | ) | const [inherited] |
Return the site it points to (as a Site_Proxy).
multiple_qiter< W, F > & mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::update | ( | ) | [inherited] |
Warning: this method is an advanced tool provided for very special occasions; if you are a regular user, you should never use it! Calling this method forces this relative iterator to synchronize with its center when it has just moved and when the relative iterator still makes sense.
const typename multiple< W, F > ::psite * mln::internal::site_relative_iterator_base< multiple< W, F > , multiple_qiter< W, F > , typename multiple< W, F > ::psite >::c_ [protected, inherited] |
A pointer to the center psite around which this iterator moves.
Definition at line 108 of file site_relative_iterator_base.hh.
unsigned mln::win::multiple_qiter< W, F >::i_ [private] |
Definition at line 168 of file multiple.hh.
const multiple< W, F > * mln::internal::site_iterator_base< multiple< W, F > , multiple_qiter< W, F > >::s_ [protected, inherited] |
The target.
Definition at line 90 of file site_iterator_base.hh.
unsigned mln::win::multiple_qiter< W, F >::size_ [private] |
Definition at line 169 of file multiple.hh.