note description: "[ Encoding of arbitrary objects graphs within a session of a same program. Some routines are explicitely frozen, not because we do not want them to be redefined but if they are frozen, it saves us having to look at all possible descendants whenever we do a change. ]" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2017-03-28 12:36:24 +0000 (Tue, 28 Mar 2017) $" revision: "$Revision: 100064 $" class interface SED_SESSION_SERIALIZER create make feature -- Access root_object: detachable ANY -- Root object of object graph serializer: SED_READER_WRITER -- Serializer used to encode data feature -- Status report is_traversing_mode_set: BOOLEAN -- Is traversing mode set? is_root_object_set: BOOLEAN -- Is root object of object graph set? feature -- Element change set_breadth_first_traversing_mode -- Change graph traversing to breadth first. ensure traversing_mode_set: is_traversing_mode_set breadth_first_mode: attached {OBJECT_GRAPH_BREADTH_FIRST_TRAVERSABLE} traversable set_depth_first_traversing_mode -- Change graph traversing to depth first. ensure traversing_mode_set: is_traversing_mode_set depth_first_mode: attached {OBJECT_GRAPH_DEPTH_FIRST_TRAVERSABLE} traversable set_root_object (an_object: like root_object) -- Make 'an_object' the root_object. require an_object_not_void: an_object /= Void traversing_mode_set: is_traversing_mode_set ensure root_object_set: root_object = an_object and is_root_object_set root_object_identity: root_object = traversable.root_object set_serializer (a_serializer: like serializer) -- Set serializer with a_serializer. require a_serializer_not_void: a_serializer /= Void a_serializer_ready: a_serializer.is_ready_for_writing ensure serializer_set: serializer = a_serializer feature -- Basic operations frozen encode -- Encode object graph starting with the root object. require traversing_mode_set: is_traversing_mode_set root_object_set: is_root_object_set invariant reflector_not_void: reflector /= Void reflected_object_not_void: reflected_object /= Void traversable_not_void: traversable /= Void serializer_not_void: serializer /= Void object_indexes_not_void: object_indexes /= Void note library: "EiffelBase: Library of reusable components for Eiffel." 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 SED_SESSION_SERIALIZER
Generated by ISE EiffelStudio