Object serialization: Difference between revisions
Content deleted Content added
→{{header|Tcl}}: Converted to right template for known status of item |
→Tcl: Added correct implementation |
||
Line 682:
=={{header|Tcl}}==
''This example uses an experimental package, available from [http://wiki.tcl.tk/23444 The Tcler's Wiki].
<lang tcl>package require TclOO::serializer 0.1
# These classes are inspired by the Perl example
oo::class create Greeting {
superclass oo::serializable
constructor {} {
set v "Hello world!"
}
return $v
}
}
oo::class create SubGreeting {
superclass Greeting oo::serializable
variable v
constructor {} {
set v "Hello world from Junior!"
}
}
oo::class create GreetingsHolder {
superclass oo::serializable
variable o1 o2
constructor {greeting1 greeting2} {
set o1 $greeting1
set o2 $greeting2
}
method printGreetings {} {
puts [$o1 get]
puts [$o2 get]
}
destructor {
$o1 destroy
$o2 destroy
}
}
# Make some objects and store them
GreetingsHolder create holder [Greeting new] [SubGreeting new]
set f [open "objects.dat" w]
puts $f [oo::serialize holder]
close $f
# Delete the objects
holder destroy
# Recreate the objects from the file and show that they work
set f [open "objects.dat" r]
set obj [oo::deserialize [read $f]]
close $f
$obj printGreetings</lang>
|