+
Point of view
All features
deferred class INTERNALS
Summary
INTERNALS serves as a gateway between the typed ideal world of Eiffel objects and the untyped physical world of raw memory, files on disks, streams on networks...
All instances of INTERNALS must be of type TYPED_INTERNALS. Each INTERNALS object describes the physical structure of exactly one type. For instance, TYPED_INTERNALS[STRING] describes the physical structure of class STRING.
Optionally, an object of an INTERNAL's associated type can be attached to that INTERNAL. The INTERNAL can then be used to inspect and change the values of the attributes of the attached object. For instance, a STRING could be attached to a TYPED_INTERNALS[STRING]. The TYPED_INTERNALS[STRING] could then be used to get or set this STRING's attributes.
This class is meant as a very basic building block. Please read the following advice to use INTERNALS wisely:
  1. Don't use INTERNALS
  2. If rule 1 is inapplicable, use INTERNALS to build a higher-level abstraction, and use that abstraction in your application. You really don't want INTERNALS scattered around your application code.
Direct parents
Insert list: ANY
Known children
Inherit list: TYPED_INTERNALS
Overview
Features
Getting information about the described object's type
{INTERNALS_HANDLER, INTERNALS}
Getting information about the type's attributes
{INTERNALS_HANDLER}
Accessing the object
{INTERNALS_HANDLER}
Accessing the object's attributes
{INTERNALS_HANDLER}
type_generator: STRING
deferred function
Name of the base class of the type described by Current.
type_generating_type: STRING
deferred function
Name of the type described by Current.
type_is_expanded: BOOLEAN
deferred function
Is the type described by Current expanded?
type_is_native_array: BOOLEAN
effective function
Is the type described by Current a NATIVE_ARRAY?
type_attribute_is_expanded (i: INTEGER_32): BOOLEAN
deferred function
Is the type of the ith attribute expanded?
type_can_be_assigned_to_attribute (other: INTERNALS, i: INTEGER_32): BOOLEAN
deferred function
Can the object attached to other be assigned to the ith attribute?
type_attribute_count: INTEGER_32
deferred function
Number of attributes of the type described by Current
type_attribute_name (i: INTEGER_32): STRING
deferred function
Name of the ith attribute of the type described by Current.
type_attribute_generator (i: INTEGER_32): STRING
deferred function
Name of the base class of the ith attribute of the type described by Current.
type_attribute_generating_type (i: INTEGER_32): STRING
deferred function
Name of the type of the ith attribute of the type described by Current.
object_as_pointer: POINTER
deferred function
Pointer to the object currently attached to Current.
object_attribute (i: INTEGER_32): INTERNALS
deferred function
Read the ith attribute of the type described by Current (also see type_attribute).
set_object_attribute (element: INTERNALS, i: INTEGER_32)
deferred procedure
Write the ith attribute of the type described by Current
object_can_be_retrieved: BOOLEAN
writable attribute
Can the object be retrieved by the rest of the system through object?
object_can_be_modified: BOOLEAN
effective function
Can the object be modified through set_object_attribute, i.e.
set_object_can_be_retrieved
deferred procedure
Forbid further modification of the object through set_object_attribute, so that it can safely be released into the system.