Difference between revisions of "Persistence code samples"

(SERIALIZATION_MANAGER)
(BINARY_SERIALIZATION_MANAGER)
Line 36: Line 36:
  
 
==BINARY_SERIALIZATION_MANAGER==
 
==BINARY_SERIALIZATION_MANAGER==
 +
<code>
 +
class
 +
BINARY_SERIALIZATION_MANAGER
 +
 +
inherit
 +
PERSISTENCE_MANAGER
 +
 +
create
 +
make
 +
 +
feature -- Creation
 +
 +
make (file_name: STRING)
 +
-- Creation procedure
 +
require
 +
file_name_exists: file_name /= Void
 +
do
 +
create {FILE_MEDIUM} medium.make (file_name)
 +
create {INDEPENDENT_BINARY_FORMAT} format
 +
ensure
 +
medium_exists: medium /= Void
 +
format_exists: format /= Void
 +
end
 +
 +
end
 +
<code>
  
 
==PERSISTENCE_FORMAT==
 
==PERSISTENCE_FORMAT==

Revision as of 00:16, 19 August 2007

Here the main classes of the framework are sketched.

You can download the source code here (TODO: provide a link to the sources)

Simplified BON diagram

PERSISTENCE_MANAGER

class
	PERSISTENCE_MANAGER
 
feature -- Access
 
	medium: PERSISTENCE_MEDIUM -- the chosen medium
 
	format: PERSISTENCE_FORMAT	-- the chosen format
 
feature -- Basic operations
 
	store (an_object:ANY)
			-- persists an_object using the format and medium stored by current object
		require
			an_object_exists:an_object /= Void
			medium_exists: medium /= Void
		do
			format.store(an_object,medium)
		end
 
	retrieve:ANY
			-- retrieves an_object using the medium and format stored by current object
		require
			medium_exists: medium /= Void
		do
			Result:=format.retrieve(medium)
		end
end

BINARY_SERIALIZATION_MANAGER

class
	BINARY_SERIALIZATION_MANAGER
 
inherit
	PERSISTENCE_MANAGER
 
create
	make
 
feature -- Creation
 
	make (file_name: STRING)
			-- Creation procedure
		require
			file_name_exists: file_name /= Void
		do
			create {FILE_MEDIUM} medium.make (file_name)
			create {INDEPENDENT_BINARY_FORMAT} format
		ensure
			medium_exists: medium /= Void
			format_exists: format /= Void
		end
 
end
<code>
 
==PERSISTENCE_FORMAT==
==BINARY_FORMAT==
==INDEPENDENT_BINARY_FORMAT==
<code>
class
	INDEPENDENT_BINARY_FORMAT
 
inherit
	BINARY_FORMAT
 
feature -- Access
 
	optimized_for_retrieval:BOOLEAN
 
feature -- Status setting
 
	set_optimized_for_retrieval(is_optimized_for_retrieval:BOOLEAN)
	do
		optimized_for_retrieval:=is_optimized_for_retrieval
	ensure
		optimized_for_retrieval_set:optimized_for_retrieval=is_optimized_for_retrieval
	end
 
feature -- Basic operations
 
	store_now(object_to_store:ANY)
	do
		store_handler.independent_store(object_to_store,serializer,optimized_for_retrieval)
	end
 
end

PERSISTENCE_MEDIUM

FILE_MEDIUM