note
	description: "Representation of a memory structure."
	library: "Free implementation of ELKS library"
	status: "See notice at end of class."
	legal: "See notice at end of class."
	date: "$Date: 2017-12-26 18:35:31 +0000 (Tue, 26 Dec 2017) $"
	revision: "$Revision: 101217 $"

deferred class interface
	MEMORY_STRUCTURE

feature -- Initialization

	make
			-- Initialize current with given structure_size.
		ensure
			not_shared: not shared

	make_by_pointer (a_ptr: POINTER)
			-- Initialize current with a_ptr.
		require
			a_ptr_not_null: a_ptr /= default_pointer
		ensure
			shared: shared
	
feature -- Access

	shared: BOOLEAN
			-- Is current memory area shared with others?

	item: POINTER
			-- Access to memory area.
	
feature -- Status report

	exists: BOOLEAN
			-- Is allocated memory still allocated?
	
feature -- Measurement

	structure_size: INTEGER_32
			-- Size to allocate (in bytes).
		ensure
			is_class: class
			positive_result: Result > 0
	
invariant
	managed_pointer_valid: not shared implies managed_pointer /= Void
	internal_item_valid: shared implies internal_item /= default_pointer

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 MEMORY_STRUCTURE

Generated by ISE EiffelStudio