The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
unit_map::iterator_base< iter_types > Struct Template Reference

#include <map.hpp>

Public Types

typedef std::forward_iterator_tag iterator_category
 
typedef int difference_type
 
typedef iter_types::value_type value_type
 
typedef boost::intrusive_ptr
< value_type
pointer
 
typedef value_typereference
 
typedef iter_types::container_type container_type
 
typedef iter_types::iterator_type iterator_type
 

Public Member Functions

 ~iterator_base ()
 
 iterator_base ()
 
 iterator_base (iterator_type i, container_type *m)
 
 iterator_base (const iterator_base &that)
 
iterator_baseoperator= (const iterator_base &that)
 
 operator iterator_base< const_iter_types > () const
 
pointer operator-> () const
 
pointer get_shared_ptr () const
 
reference operator* () const
 
iterator_baseoperator++ ()
 
iterator_base operator++ (int)
 
iterator_baseoperator-- ()
 
iterator_base operator-- (int)
 
bool valid () const
 
 operator bool () const
 
bool operator== (const iterator_base &rhs) const
 
bool operator!= (const iterator_base &rhs) const
 

Private Member Functions

 iterator_base (t_lmap::iterator ui, container_type *m)
 Construct an iterator from the location map. More...
 
bool valid_for_dereference () const
 
bool valid_entry () const
 
void valid_exit () const
 
bool valid_ref_count () const
 
void inc ()
 Increment the reference counter. More...
 
void dec ()
 Decrement the reference counter Delete the umap entry if the unit is gone and the reference counter is zero. More...
 
unit_map::t_umapthe_map () const
 

Private Attributes

iterator_type i_
 
container_typetank_
 local iterator More...
 

Friends

template<typename Y >
struct iterator_base
 
class unit_map
 

Detailed Description

template<typename iter_types>
struct unit_map::iterator_base< iter_types >

Definition at line 129 of file map.hpp.

Member Typedef Documentation

template<typename iter_types>
typedef iter_types::container_type unit_map::iterator_base< iter_types >::container_type

Definition at line 136 of file map.hpp.

template<typename iter_types>
typedef int unit_map::iterator_base< iter_types >::difference_type

Definition at line 132 of file map.hpp.

template<typename iter_types>
typedef std::forward_iterator_tag unit_map::iterator_base< iter_types >::iterator_category

Definition at line 131 of file map.hpp.

template<typename iter_types>
typedef iter_types::iterator_type unit_map::iterator_base< iter_types >::iterator_type

Definition at line 137 of file map.hpp.

template<typename iter_types>
typedef boost::intrusive_ptr<value_type> unit_map::iterator_base< iter_types >::pointer

Definition at line 134 of file map.hpp.

template<typename iter_types>
typedef value_type& unit_map::iterator_base< iter_types >::reference

Definition at line 135 of file map.hpp.

template<typename iter_types>
typedef iter_types::value_type unit_map::iterator_base< iter_types >::value_type

Definition at line 133 of file map.hpp.

Constructor & Destructor Documentation

template<typename iter_types>
unit_map::iterator_base< iter_types >::~iterator_base ( )
inline

Definition at line 139 of file map.hpp.

References unit_map::iterator_base< iter_types >::dec().

template<typename iter_types>
unit_map::iterator_base< iter_types >::iterator_base ( )
inline

Definition at line 141 of file map.hpp.

template<typename iter_types>
unit_map::iterator_base< iter_types >::iterator_base ( iterator_type  i,
container_type m 
)
inline
template<typename iter_types>
unit_map::iterator_base< iter_types >::iterator_base ( const iterator_base< iter_types > &  that)
inline
template<typename iter_types>
unit_map::iterator_base< iter_types >::iterator_base ( t_lmap::iterator  ui,
container_type m 
)
inlineprivate

Construct an iterator from the location map.

Definition at line 170 of file map.hpp.

References unit_map::iterator_base< iter_types >::inc(), and unit_map::iterator_base< iter_types >::valid_exit().

Member Function Documentation

template<typename iter_types>
void unit_map::iterator_base< iter_types >::dec ( )
inlineprivate

Decrement the reference counter Delete the umap entry if the unit is gone and the reference counter is zero.

Note
this deletion will advance i_ to the next umap entry.

Definition at line 257 of file map.hpp.

References unit_map::iterator_base< iter_types >::i_, unit_map::iterator_base< iter_types >::tank_, and unit_map::iterator_base< iter_types >::valid_ref_count().

Referenced by unit_map::iterator_base< iter_types >::operator++(), unit_map::iterator_base< iter_types >::operator--(), unit_map::iterator_base< iter_types >::operator=(), and unit_map::iterator_base< iter_types >::~iterator_base().

template<typename iter_types>
pointer unit_map::iterator_base< iter_types >::get_shared_ptr ( ) const
inline
template<typename iter_types>
void unit_map::iterator_base< iter_types >::inc ( )
inlineprivate
template<typename iter_types>
unit_map::iterator_base< iter_types >::operator bool ( ) const
inlineexplicit

Definition at line 233 of file map.hpp.

References unit_map::iterator_base< iter_types >::valid().

template<typename iter_types>
unit_map::iterator_base< iter_types >::operator iterator_base< const_iter_types > ( ) const
inline
template<typename iter_types>
bool unit_map::iterator_base< iter_types >::operator!= ( const iterator_base< iter_types > &  rhs) const
inline

Definition at line 237 of file map.hpp.

References unit_map::iterator_base< iter_types >::operator==().

template<typename iter_types>
reference unit_map::iterator_base< iter_types >::operator* ( ) const
inline
template<typename iter_types>
iterator_base& unit_map::iterator_base< iter_types >::operator++ ( )
inline
template<typename iter_types>
iterator_base unit_map::iterator_base< iter_types >::operator++ ( int  )
inline

Definition at line 203 of file map.hpp.

References unit_map::iterator_base< iter_types >::operator++().

template<typename iter_types>
iterator_base& unit_map::iterator_base< iter_types >::operator-- ( )
inline
template<typename iter_types>
iterator_base unit_map::iterator_base< iter_types >::operator-- ( int  )
inline

Definition at line 223 of file map.hpp.

References unit_map::iterator_base< iter_types >::operator--().

template<typename iter_types>
pointer unit_map::iterator_base< iter_types >::operator-> ( ) const
inline
template<typename iter_types>
iterator_base& unit_map::iterator_base< iter_types >::operator= ( const iterator_base< iter_types > &  that)
inline
template<typename iter_types>
bool unit_map::iterator_base< iter_types >::operator== ( const iterator_base< iter_types > &  rhs) const
inline
template<typename iter_types>
unit_map::t_umap& unit_map::iterator_base< iter_types >::the_map ( ) const
inlineprivate
template<typename iter_types>
bool unit_map::iterator_base< iter_types >::valid ( ) const
inline

Definition at line 229 of file map.hpp.

References unit_map::iterator_base< iter_types >::i_, and unit_map::iterator_base< iter_types >::valid_for_dereference().

Referenced by replay::add_unit_checksum(), advance_unit(), advance_unit_at(), BOOST_AUTO_TEST_CASE(), playsingle_controller::hotkey_handler::can_execute_command(), play_controller::hotkey_handler::can_execute_command(), ai::readonly_context_impl::check_attack_action(), actions::shroud_clearer::clear_loc(), events::mouse_handler::current_unit_attacks_from(), ai::move_result::do_execute(), ai::stage_unit_formulas::do_play_stage(), do_replay_handle(), ai::ai_default_rca::move_leader_to_goals_phase::evaluate(), ai::ai_default_rca::move_leader_to_keep_phase::evaluate(), wb::attack::execute(), ai::readwrite_context_impl::execute_attack_action(), unit_creator::find_location(), events::mouse_handler::find_unit(), game_board::find_visible_unit(), lua_unit::get(), ai::unit_advancements_aspect::get_advancements(), lua_unit::get_shared(), unit_map::iterator_base< iter_types >::get_shared_ptr(), wb::suppose_dead::get_unit(), wb::move::get_unit(), display_context::get_visible_unit(), game_board::has_visible_unit(), ai::helper_check_village(), game_lua_kernel::intf_find_cost_map(), game_lua_kernel::intf_find_path(), game_lua_kernel::intf_find_reach(), game_lua_kernel::intf_get_displayed_unit(), game_lua_kernel::intf_get_unit(), events::menu_handler::kill_unit(), terrain_filter::match_internal(), unit_animation::matches(), game_events::entity_location::matches_unit(), game_events::entity_location::matches_unit_filter(), events::mouse_handler::mouse_motion(), events::mouse_handler::move_action(), unit_map::iterator_base< iter_types >::operator bool(), unit_map::iterator_base< iter_types >::operator*(), unit_map::iterator_base< iter_types >::operator->(), actions::place_recruit(), wb::manager::post_draw(), wb::manager::pre_draw(), play_controller::process_keyup_event(), ai::readonly_context_impl::recalculate_move_maps(), game_lua_kernel::run_filter(), game_display::scroll_to_leader(), events::mouse_handler::select_hex(), game_board::side_change_controller(), game_board::side_drop_to(), SYNCED_COMMAND_HANDLER_FUNCTION(), unit_display::unit_attack(), display_context::unit_can_move(), unit_helper::will_certainly_advance(), unit_display::wml_animation_internal(), and display_context::would_be_discovered().

template<typename iter_types>
bool unit_map::iterator_base< iter_types >::valid_entry ( ) const
inlineprivate
template<typename iter_types>
void unit_map::iterator_base< iter_types >::valid_exit ( ) const
inlineprivate
template<typename iter_types>
bool unit_map::iterator_base< iter_types >::valid_for_dereference ( ) const
inlineprivate
template<typename iter_types>
bool unit_map::iterator_base< iter_types >::valid_ref_count ( ) const
inlineprivate

Friends And Related Function Documentation

template<typename iter_types>
template<typename Y >
friend struct iterator_base
friend

Definition at line 239 of file map.hpp.

template<typename iter_types>
friend class unit_map
friend

Definition at line 269 of file map.hpp.

Member Data Documentation

template<typename iter_types>
iterator_type unit_map::iterator_base< iter_types >::i_
private
template<typename iter_types>
container_type* unit_map::iterator_base< iter_types >::tank_
private

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