Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
Typelib::Array Class Reference

#include <typemodel.hh>

Inheritance diagram for Typelib::Array:
Inheritance graph
[legend]

List of all members.

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 Typedo_merge (Registry &registry, 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

Detailed Description

Unidimensional array types. As in C, the multi-dimensional arrays are defined as arrays-of-arrays

Definition at line 465 of file typemodel.hh.


Constructor & Destructor Documentation

Typelib::Array::Array ( Type const &  of,
size_t  dimension 
)

Definition at line 507 of file typemodel.cc.


Member Function Documentation

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.


Member Data Documentation

size_t Typelib::Array::m_dimension [private]

Definition at line 480 of file typemodel.hh.


The documentation for this class was generated from the following files:


typelib
Author(s): Sylvain Joyeux/sylvain.joyeux@m4x.org
autogenerated on Sat Jun 8 2019 18:49:22