Object serialization: Difference between revisions
Content added Content deleted
m (ol notes) |
(Add Neko) |
||
Line 1,390: | Line 1,390: | ||
Entity |
Entity |
||
</pre> |
</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}}== |
=={{header|Objective-C}}== |