il::record_type Class Reference

Struct, class, union. More...

#include <type.h>

Inheritance diagram for il::record_type:
il::type

List of all members.

Public Member Functions

void compute_recursive_fields ()
 SHARED_DEFINE_MAKE_METHOD (record_type,(string name, namespace_context ctx, int size, int asize, bool is_union, bool is_class, const vector< record_info * > &elems, const string &typedef_name, bool is_abstract),(name, ctx, size, asize, is_union, is_class, elems, typedef_name, is_abstract)) virtual bool operator
void add_member_function (function_declaration *fd)
vector< function_declaration * > & get_member_functions ()
void update_incomplete_record (int size, int asize, const vector< record_info * > &elems, bool is_abstract)
void add_base (record_type *base, long int offset)
const map< int, record_type * > & get_bases ()
void add_derivative (record_type *sub)
vector< record_type * > & get_derivatives ()
void get_transitive_subclasses (set< record_type * > &subclasses)
type ** get_typeref_from_index (int i)
bool is_recursive ()
vector< record_info * > & get_recursive_fields ()
bool has_virtual_methods ()
bool is_abstract ()
void get_all_methods (set< function_declaration * > &all_methods)
 Populates all_methods with all methods this class has, including the ones it inherits. Example: Consider C inherits from B inherits from A, and a method f defined in A and B, but not C. Then all_methods includes B::f, but not A::f.
virtual string to_string () const
virtual bool is_record_type () const
bool is_supertype_of (il::record_type *t)
bool is_subtype_of (il::record_type *t)
void get_classes_inheriting_method (string fun_name, il::type *signature, set< il::record_type * > &inheriting_classes)
 Given a method identified by fun_name and its signature, populates the set of classes that inherit (i.e., do not override this method).
bool contains_method (string fun_name, type *sig)
vector< record_info * > & get_fields ()
record_infoget_field_from_name (string name)
record_infoget_field_from_offset (int offset)
bool is_struct ()
bool is_class ()
bool is_union ()

Public Attributes

vector< record_info * > elems
map< string, record_info * > name_to_record_info
map< int, record_info * > offset_to_elem
vector< function_declaration * > member_functions
map< int, record_type * > bases
vector< record_type * > derivatives
string name
namespace_context ns
record_kind kind
vector< record_info * > recursive_fields
bool compare_all_fields
bool abstract

Friends

class boost::serialization::access

Detailed Description

Struct, class, union.


Member Function Documentation

bool il::record_type::contains_method ( string  fun_name,
type sig 
)
Returns:
Does the given class contain a method with the given name and signature?
void il::record_type::get_transitive_subclasses ( set< record_type * > &  subclasses  ) 
Parameters:
The set of all subtypes T such that T is a subtype of this class.
bool il::record_type::has_virtual_methods (  ) 
Returns:
Does this class have any virtual methods?
bool il::record_type::is_abstract (  ) 
Returns:
Is this an abstract class?
bool il::record_type::is_subtype_of ( il::record_type t  ) 
Returns:
Is this type a subtype of t?
bool il::record_type::is_supertype_of ( il::record_type t  ) 
Returns:
Is this type a supertype of t?

The documentation for this class was generated from the following files:
Generated on Sun Oct 17 14:01:28 2010 by  doxygen 1.6.3