#include <typemodel.hh>
Public Member Functions | |
Array (Type const &of, size_t dimension) | |
size_t | getDimension () const |
Static Public Member Functions | |
static std::string | getArrayName (std::string const &base, size_t new_dim) |
Protected Member Functions | |
virtual std::string | getIndirectTypeName (std::string const &inside_name) const |
Private Member Functions | |
virtual bool | do_compare (Type const &other, bool equality, RecursionStack &stack) const |
virtual Type * | do_merge (Registry ®istry, RecursionStack &stack) const |
virtual bool | do_resize (Registry &into, std::map< std::string, std::pair< size_t, size_t > > &new_sizes) |
Private Attributes | |
size_t | m_dimension |
Unidimensional array types. As in C, the multi-dimensional arrays are defined as arrays-of-arrays
Definition at line 465 of file typemodel.hh.
Typelib::Array::Array | ( | Type const & | of, |
size_t | dimension | ||
) |
Definition at line 507 of file typemodel.cc.
bool Typelib::Array::do_compare | ( | Type const & | other, |
bool | equality, | ||
RecursionStack & | stack | ||
) | const [private, virtual] |
Reimplemented from Typelib::Indirect.
Definition at line 523 of file typemodel.cc.
Type * Typelib::Array::do_merge | ( | Registry & | registry, |
RecursionStack & | stack | ||
) | const [private, virtual] |
Called by Type::merge when the type does not exist in registry
already. This method has to create a new type in registry that matches the type definition of *this.
All types referenced by *this must be moved to their equivalent in registry
.
Implements Typelib::Type.
Definition at line 531 of file typemodel.cc.
bool Typelib::Array::do_resize | ( | Registry & | into, |
std::map< std::string, std::pair< size_t, size_t > > & | new_sizes | ||
) | [private, virtual] |
Implementation of the actual resizing. Called by resize()
Reimplemented from Typelib::Indirect.
Definition at line 539 of file typemodel.cc.
std::string Typelib::Array::getArrayName | ( | std::string const & | base, |
size_t | new_dim | ||
) | [static] |
Definition at line 516 of file typemodel.cc.
size_t Typelib::Array::getDimension | ( | ) | const |
Definition at line 522 of file typemodel.cc.
std::string Typelib::Array::getIndirectTypeName | ( | std::string const & | inside_name | ) | const [protected, virtual] |
Overloaded in subclasses to return the name of this type based on the name of the indirection
This is solely used by modifiedDependencyAliases() to update the set of aliases for a given type
Implements Typelib::Indirect.
Definition at line 511 of file typemodel.cc.
size_t Typelib::Array::m_dimension [private] |
Definition at line 480 of file typemodel.hh.