Persistence code samples: Difference between revisions
Jump to navigation
Jump to search
| 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 09: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