<< TypeRange
 Top   Types   Functions   Classes   Index 
TypeApplication >>

struct CrlTypeTuple / crl_type_tuple_t

Concrete Class


Description

The value must be a vector typed value, i.e., indexed with ints.

The element type for each element is defined. The length is fixed.

A more efficient data structure than ValueVector may be used in the future if it is known in advance that the number of elements is fixed.

In CRL2 file syntax, this type is called

[ TYPE1, TYPE2, ..., TYPEn ]

Where TYPEi are the types of the corresponding element. Currently all the elements are optional. This will be extended soon.

Kinship

Immediate super class: TypeCompound

Immediate sub class: TypeApplication

Slots

VectorType elements

Inherited Slots

int Object::class_id
int Object::heap_sig
int Object::ref_count
UserData Object::user_data

Members

CrlTypeTuple()
CrlTypeTuple(TypeTuple const &)
voidoperator=(TypeTuple const &)
voidappend(Type *)
VectorType const *elements() const
VectorType *elements()
boolempty() const
intnentries() const
boolnon_empty() const
Type *nth(int) const
voidset_elements(VectorType const *)

Inherited Members

From ClassC++C
Crl::address_default_user_print_file
Crl::address_default_user_print_vchar
Crl::bool_default_user_print_file
Crl::bool_default_user_print_vchar
Crl::context_default
Crl::enum_default_user_print_file
Crl::enum_default_user_print_vchar
Crl::float_default_user_print_file
Crl::float_default_user_print_vchar
Crl::get_string2symbol
Crl::get_string2symbol_default
Crl::get_user_data_delete_hook
Crl::gmt_default_user_print_file
Crl::gmt_default_user_print_vchar
Crl::identifier_default_user_print_file
Crl::identifier_default_user_print_vchar
Crl::is_c_identifier
Crl::is_initialised
Crl::is_lowcase_identifier
Crl::is_normalised_decimal
Crl::klass_id_to_crl_name
Crl::klass_id_to_name
Crl::set_handle_foreign_item
Crl::set_string2symbol
Crl::set_user_data_delete_hook
Crl::signed_default_user_print_file
Crl::signed_default_user_print_vchar
Crl::string2symbol
Crl::string_default_user_print_file
Crl::string_default_user_print_vchar
Crl::symbol_default_user_print_file
Crl::symbol_default_user_print_vchar
Crl::type_any
Crl::unsigned_default_user_print_file
Crl::unsigned_default_user_print_vchar
Object::operator delete
Object::operator new
Object::operator!=crl_type_tuple_is_not_equal
Object::operator<crl_type_tuple_is_less_than
Object::operator<=crl_type_tuple_is_less_equal
Object::operator==crl_type_tuple_is_equal
Object::operator>crl_type_tuple_is_greater_than
Object::operator>=crl_type_tuple_is_greater_equal
Object::_ref
Object::_ref_unref
Object::_unref
Object::_unref_no_delete
Type::boxcrl_type_tuple_get_box
Type::check_applicationcrl_type_tuple_check_application
Type::check_floatcrl_type_tuple_check_float
Type::check_itemcrl_type_tuple_check_item
Type::check_mapcrl_type_tuple_check_map
Type::check_missingcrl_type_tuple_check_missing
Type::check_nullcrl_type_tuple_check_null
Object::check_sigcrl_type_tuple_check_sig
Type::check_signedcrl_type_tuple_check_signed
Type::check_stringcrl_type_tuple_check_string
Type::check_unsignedcrl_type_tuple_check_unsigned
Type::check_vectorcrl_type_tuple_check_vector
Object::class_idcrl_type_tuple_get_class_id
Object::cmpcrl_type_tuple_cmp
Object::cmp_shallowcrl_type_tuple_cmp_shallow
Type::find_symcrl_type_tuple_find_sym
Object::graphcrl_type_tuple_get_graph_const
Object::hashcrl_type_tuple_hash
Object::hash_shallowcrl_type_tuple_hash_shallow
Object::heap_sigcrl_type_tuple_get_heap_sig
Object::klass_idcrl_type_tuple_get_klass_id
Object::klass_namecrl_type_tuple_get_klass_name
Object::mapcrl_type_tuple_map
Object::map_subcrl_type_tuple_map_sub_with_data
Type::maximumcrl_type_tuple_get_maximum
Type::minimumcrl_type_tuple_get_minimum
Type::nth_signedcrl_type_tuple_nth_signed
Type::nth_unsignedcrl_type_tuple_nth_unsigned
Object::printcrl_type_tuple_print_vchar
Object::ref_count
Object::routinecrl_type_tuple_get_routine_const
Object::set_user_datacrl_type_tuple_set_user_data
Type::spawncrl_type_tuple_spawn
Object::to_vcharcrl_type_tuple_to_vchar
Object::user_datacrl_type_tuple_get_user_data_const
Type::user_printcrl_type_tuple_user_print_vchar_string


Detailed Descriptions


#if CRL_NEED_TYPE_TUPLE

VectorType const * elements () const

C++: CrlVectorType const * CrlTypeTuple::elements () const
C: CrlVectorType const * crl_type_tuple_get_elements_const (crl_type_tuple_t const * self)

Reader of slot 'elements': Type of the entries.

This returns To write this slot, use set_elements().

This reader is NULL safe; for this == NULL, it returns NULL.

#endif


#if CRL_NEED_TYPE_TUPLE

VectorType * elements ()

C++: CrlVectorType * CrlTypeTuple::elements ()
C: CrlVectorType * crl_type_tuple_get_elements (crl_type_tuple_t * self)

Reader of slot 'elements': Type of the entries.

The pointer this returns can be used for writing the slot directly.

Another way to write this slot is set_elements().

This reader is NULL safe; for this == NULL, it returns NULL.

#endif


#if CRL_NEED_TYPE_TUPLE

void set_elements (VectorType const *)

C++: void CrlTypeTuple::set_elements (CrlVectorType const *)
C: void crl_type_tuple_set_elements (crl_type_tuple_t * self, CrlVectorType const *)

Writer of slot 'elements': Type of the entries.

To read this slot, use set_elements().

This writer must not be invoked with this == NULL.

#endif


#if CRL_NEED_TYPE_TUPLE

[constructor] CrlTypeTuple ()

C++: CrlTypeTuple::CrlTypeTuple ()
C: crl_type_tuple_t * crl_type_tuple_new (void)
#endif


#if CRL_NEED_TYPE_TUPLE

[constructor] CrlTypeTuple (TypeTuple const &)

C++: CrlTypeTuple::CrlTypeTuple (CrlTypeTuple const &)
C: crl_type_tuple_t * crl_type_tuple_new_copy (crl_type_tuple_t const *)
#endif


#if CRL_NEED_TYPE_TUPLE

void operator= (TypeTuple const &)

C++: void CrlTypeTuple::operator= (CrlTypeTuple const &)
C: void crl_type_tuple_assign (crl_type_tuple_t * self, crl_type_tuple_t const *)
#endif


#if CRL_NEED_TYPE_TUPLE

int nentries () const

C++: int CrlTypeTuple::nentries () const
C: int crl_type_tuple_nentries (crl_type_tuple_t const * self)

Currently quite limited access to substructures:

NULL safe: if this == NULL, returns 0

#endif


#if CRL_NEED_TYPE_TUPLE

bool empty () const

C++: bool CrlTypeTuple::empty () const
C: crl_bool_t crl_type_tuple_empty (crl_type_tuple_t const * self)

NULL safe: if this == NULL, returns true

#endif


#if CRL_NEED_TYPE_TUPLE

bool non_empty () const

C++: bool CrlTypeTuple::non_empty () const
C: crl_bool_t crl_type_tuple_non_empty (crl_type_tuple_t const * self)

NULL safe: if this == NULL, returns false

#endif


#if CRL_NEED_TYPE_TUPLE

Type * nth (int) const

C++: CrlType * CrlTypeTuple::nth (int) const
C: crl_type_t * crl_type_tuple_nth (crl_type_tuple_t const * self, int)

NULL safe and index protected. Returns NULL if something does not exist.

#endif


#if CRL_NEED_TYPE_TUPLE

void append (Type *)

C++: void CrlTypeTuple::append (CrlType *)
C: void crl_type_tuple_append (crl_type_tuple_t * self, crl_type_t *)
#endif


Occurrences of CrlTypeTuple

CrlVectorType const *crl_erwin_ptr_const_of(CrlTypeTuple const * x)
CrlVectorType const *crl_erwin_ptr_const_of(CrlTypeTuple const & x)
CrlVectorType *crl_erwin_ptr_of(CrlTypeTuple * x)
CrlVectorType *crl_erwin_ptr_of(CrlTypeTuple & x)
CrlTypeTuple::CrlTypeTuple()
CrlTypeTuple::CrlTypeTuple(TypeTuple const &)
voidCrlTypeTuple::operator=(TypeTuple const &)
TypeTuple *CrlObject::as_TypeTuple()
TypeTuple const *CrlObject::as_TypeTuple() const
TypeTuple *CrlObject::cast_TypeTuple()
TypeTuple const *CrlObject::cast_TypeTuple() const


Generated by erwin-cgen © AbsInt Angewandte Informatik GmbH