Object serialization: Difference between revisions

Add Neko
m (ol notes)
(Add Neko)
Line 1,390:
Entity
</pre>
 
=={{header|Neko}}==
<lang actionscript>/* Object serialization, in Neko */
 
var file_open = $loader.loadprim("std@file_open", 2)
var file_write = $loader.loadprim("std@file_write", 4)
var file_read = $loader.loadprim("std@file_read", 4)
var file_close = $loader.loadprim("std@file_close", 1)
 
var serialize = $loader.loadprim("std@serialize", 1)
var unserialize = $loader.loadprim("std@unserialize", 2)
 
/* Inheritance by prototype */
proto = $new(null)
proto.print = function () { $print(this, "\n") }
 
obj = $new(null)
obj.msg = "Hello"
obj.dest = $array("Town", "Country", "World")
 
$objsetproto(obj, proto)
$print("Original:\n")
obj.print()
 
/* Serialize the object */
var thing = serialize(obj)
var len = $ssize(thing)
 
/* To disk */
var f = file_open("object-serialization.bin", "w")
file_write(f, thing, 0, len)
file_close(f)
 
/* Load the binary data into a new string space */
f = file_open("object-serialization.bin", "r")
var buff = $smake(len)
file_read(f, buff, 0, len)
file_close(f)
 
/* Unserialize the object into a new variable */
var other = unserialize(buff, $loader)
$print("deserialized:\n")
other.print()</lang>
 
{{out}}
<pre>prompt$ nekoc object-serialization.neko
prompt$ neko object-serialization
Original:
{ dest => [Town,Country,World], msg => Hello }
deserialized:
{ dest => [Town,Country,World], msg => Hello }</pre>
 
=={{header|Objective-C}}==
Anonymous user