note description: "[ Accessor to an object. Useful to manipulate fields of an object, or an expanded field of an object without causing any copying. If applied to an expanded type, a copy will be manipulated. ]" implementation_details: "[ The GC might be moving objects, some of the routines are actually builtin. ]" date: "$Date: 2017-03-23 19:18:26 +0000 (Thu, 23 Mar 2017) $" revision: "$Revision: 100033 $" class interface REFLECTED_REFERENCE_OBJECT create make create {REFLECTED_REFERENCE_OBJECT, RT_DBG_INTERNAL} make_for_expanded_field, make_for_expanded_field_at feature -- Access object: ANY -- Associated object for Current. -- It might be a copy if Current is expanded. object_address: POINTER -- Unprotected reference to object. enclosing_object: separate ANY -- Enclosing object containing object or a reference to `object. physical_offset: INTEGER_32 -- Actual offset in bytes of object in enclosing_object. copy_semantics_field (i: INTEGER_32): REFLECTED_COPY_SEMANTICS_OBJECT -- Object attached to the i-th field of object -- (directly or through a reference) expanded_field (i: INTEGER_32): REFLECTED_REFERENCE_OBJECT -- Object representation of the i-th field of object -- which is expanded. We provide a wrapper that enables -- direct editing of the field without duplicating -- the expanded object. feature -- Settings set_object (a_obj: separate ANY) -- Update Current to represent a new reflected object. require physical_offset_not_set: physical_offset = 0 ensure enclosing_object_set: enclosing_object = a_obj no_physical_offset: physical_offset = 0 note copyright: "Copyright (c) 1984-2017, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class REFLECTED_REFERENCE_OBJECT
Generated by ISE EiffelStudio