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)
Contents
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

