49 vconfig(
const config & cfg,
const std::shared_ptr<const config> & cache);
67 static vconfig unconstructed_vconfig();
70 explicit operator bool()
const {
return !null(); }
72 bool null()
const { assert(
cfg_);
return cfg_ == &default_empty_config; }
74 const vconfig& make_safe()
const;
76 config get_parsed_config()
const;
79 child_list get_children(
const std::string& key)
const;
80 std::size_t count_children(
const std::string& key)
const;
81 vconfig child(
const std::string& key)
const;
82 bool has_child(
const std::string& key)
const;
97 {
return expand(key); }
120 reference operator*()
const;
121 pointer operator->()
const;
140 typedef const std::pair<std::string, vconfig>
value_type;
154 reference operator*()
const;
155 pointer operator->()
const;
157 std::string get_key()
const;
190 boost::iterator_range<all_children_iterator>
all_ordered()
const {
191 return boost::make_iterator_range(ordered_begin(), ordered_end());
202 mutable std::shared_ptr<const config>
cache_;
229 const std::string&
name()
const {
return var_name_; }
230 virtual void activate() = 0;
265 recall_index_(recall_index) {}
recursion_error(const std::string &msg)
const config::attribute_value operator[](const std::string &key) const
Note: vconfig::operator[] returns const, and this should not be changed because vconfig is often used...
virtual config::attribute_value get_variable_const(const std::string &id) const
std::shared_ptr< const config > cache_
config::const_all_children_iterator Itor
value_type * operator->() const
pointer_proxy(value_type p)
Variant for storing WML attributes.
const variable_set * variables_
bool has_attribute(config_key_type key) const
virtual variable_access_const get_variable_access_read(const std::string &varname) const
bool has_attribute(const std::string &key) const
< Synonym for operator[]
config::const_attribute_iterator Itor
attribute_map::value_type attribute
std::bidirectional_iterator_tag iterator_category
pointer_proxy(value_type p)
const config::attribute reference
static void msg(const char *act, debug_info &i, const char *to="", const char *result="")
value_type * operator->() const
const pointer_proxy pointer
scoped_recall_unit(const std::string &var_name, const std::string &player, unsigned int recall_index)
Definitions for the interface to Wesnoth Markup Language (WML).
std::bidirectional_iterator_tag iterator_category
const_attr_itors attribute_range() const
unsigned int recall_index_
const config * cfg_
Used to access our config (original or copy, as appropriate).
const config::attribute value_type
const std::string & name() const
bool memory_managed() const
Returns true if *this has made a copy of its config.
boost::iterator_range< attribute_iterator > attribute_range()
boost::iterator_range< const_attribute_iterator > const_attr_itors
std::shared_ptr< const config > cache_
Keeps a copy of our config alive when we manage our own memory.
Encapsulates the map of the game.
attribute_iterator & operator--()
attribute_iterator operator--(int)
bool operator==(const config &a, const config &b)
scoped_weapon_info(const std::string &var_name, const config &data)
const config & get_child(const std::string &key)
attribute_iterator & operator++()
bool operator!=(const attribute_iterator &i) const
const std::string player_
scoped_xy_unit(const std::string &var_name, map_location loc, const unit_map &umap)
Information on a WML variable.
const pointer_proxy pointer
const std::pair< std::string, vconfig > value_type
bool operator==(const attribute_iterator &i) const
A variable-expanding proxy for the config class.
const config & get_config() const
const variable_set * variables_
Container associating units to locations.
const variable_set * variables_
attribute_iterator operator++(int)
static const config default_empty_config
bool operator!=(const all_children_iterator &i) const
attribute_iterator(const Itor &i, const variable_set &vars)
std::vector< vconfig > child_list
A config object defines a single node in a WML file, with access to child nodes.
const std::string var_name_
const value_type reference
boost::iterator_range< all_children_iterator > all_ordered() const
config_variable_set(const config &cfg)