Public Member Functions
Typelib::OpaqueType Class Reference

#include <typemodel.hh>

Inheritance diagram for Typelib::OpaqueType:
Inheritance graph

List of all members.

Public Member Functions

virtual std::set< Type const * > dependsOn () const
virtual bool do_compare (Type const &other, bool equality, std::map< Type const *, Type const * > &stack) const
virtual Typedo_merge (Registry &registry, RecursionStack &stack) const
 OpaqueType (std::string const &name, size_t size)

Detailed Description

This type is to be used when we want a field to be completely ignored, while being able to handle the rest of the system. Endianness swapping will for instance completely ignore this type.

Definition at line 199 of file typemodel.hh.

Constructor & Destructor Documentation

Typelib::OpaqueType::OpaqueType ( std::string const &  name,
size_t  size 
) [inline]

Definition at line 202 of file typemodel.hh.

Member Function Documentation

virtual std::set<Type const*> Typelib::OpaqueType::dependsOn ( ) const [inline, virtual]

The set of types this type depends upon

This method returns the set of types that are directly depended-upon by this type

Implements Typelib::Type.

Definition at line 203 of file typemodel.hh.

bool Typelib::OpaqueType::do_compare ( Type const &  other,
bool  equality,
std::map< Type const *, Type const * > &  stack 
) const [virtual]

Method that is implemented by type definitions to compare *this with other.

If equality is true, the method must check for strict equality. If it is false, it must check if other can be used to manipulate values of type *this.

For instance, let's consider a compound that has padding bytes, and assume that *this and other have different padding (but are the same on every other aspects). do_compare should then return true if equality is false, and false if equality is true.

It must use rec_compare to check for indirections (i.e. for recursive calls).

The base definition compares the name, size and category of the types.

Reimplemented from Typelib::Type.

Definition at line 154 of file

virtual Type* Typelib::OpaqueType::do_merge ( Registry registry,
RecursionStack stack 
) const [inline, 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 205 of file typemodel.hh.

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

Author(s): Sylvain Joyeux/
autogenerated on Thu Jan 2 2014 11:38:41