parent $foundation
object $messaged_old
var $root child_index 0
var $root owners [$messaged_old]
var $root fertile 0
var $root inited 1
var $messaged_old messages #[]
var $root owned [$messaged_old]
var $root manager $messaged_old
var $root writable [$messaged_old]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'messaged_old
method add_message
arg name, public, text;
// .add_message('name, public, text)
// Add a message with name 'name.
// 'public' -> 1 if the message is publicly readable, else 0.
// 'text' -> default text of the message, probably a string or list of them.
if (!(.is_writable_by(sender())))
throw(~perm, "Sender is not an owner.");
messages = dict_add(messages, name, #[['public, public], ['text, text]]);
.
method del_message
arg name;
// .del_message('name)
// Delete the given message.
if (!(.is_writable_by(sender())))
throw(~perm, "Sender is not an owner.");
messages = dict_del(messages, name);
.
method get_message
arg name;
var info;
// .get_message('name)
// Return the text of the given message.
catch ~keynf {
info = messages[name];
} with handler {
throw(~msgnf, ("Message (" + toliteral(name)) + ") does not exist.");
}
if ((!(info['public])) && (!(.is_writable_by(sender()))))
throw(~perm, "Message unreadable by sender.");
return info['text];
.
method get_message_access
arg name;
var info;
// .get_message_access('name)
// Return 1 if the message is publicly readable. Else return 0.
catch ~keynf {
info = messages[name];
} with handler {
throw(~msgnf, ("Message (" + toliteral(name)) + ") does not exist.");
}
return info['public];
.
method set_message
arg name, text;
var info;
// .set_message('name, text)
// Set message text to 'text', which is usually a string or list of strings.
if (!(.is_writable_by(sender())))
throw(~perm, "Sender is not an owner.");
catch ~keynf {
info = messages[name];
} with handler {
throw(~msgnf, ("Message (" + toliteral(name)) + ") does not exist.");
}
info = dict_add(info, 'text, text);
messages = dict_add(messages, name, info);
return text;
.
method set_message_access
arg name, public;
var info;
// .set_message_access('name, public)
// 'public' should be 1 if the message is publicly readable, else 0.
if (!(.is_writable_by(sender())))
throw(~perm, "Sender is not an owner.");
catch ~keynf {
info = messages[name];
} with handler {
throw(~msgnf, ("Message (" + toliteral(name)) + ") does not exist.");
}
info = dict_add(info, 'public, public);
messages = dict_add(messages, name, info);
return public;
.
method messages
// .messages()
// Return a list of symbols--names of all messages defined on the object.
return dict_keys(messages);
.
method init_messaged_old
if (caller() != $root)
throw(~perm, "Sender is not $root.");
messages = #[];
.