blob: 681946b05a2fc2acce088a5f2a86450e077c1b09 [file] [log] [blame]
SYNOPSIS
int save_object(string name [, int format]);
string save_object([int format]);
BESCHREIBUNG
Codiert die speicherbaren (s.u.) Variablen des aktuellen Objekts in
einen String.
In der ersten Form wir der String in die Datei <name> geschrieben. Eine
Endung ".c" in <name> wird entfernt, dafuer kann eine Endung ".o"
durch das Masterobjekt angefuegt werden, waehrend der Ueberpruefung
durch valid_read(). Die Efun save_object() liefert 0, wenn die
Speicherdatei erfolgreich erstellt wurde, sonst eine Zahl ungleich 0,
wenn ein nicht schwerwiegendee Fehler aufgetreten ist (die Datei
konnte nicht geschrieben werden oder das aktuelle Objekt wurde
inzwischen zerstoert).
In der zweiten Form wird der String direkt zurueck gegeben. Wenn das
Objekt zerstoert wurde, wird 0 zurueck gegeben. In beiden Faellen kann
durch das optionale Argument <format> das Format der Speicherdatei
angegeben werden:
-1: das normale Format des Treibers (Standard)
0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8
1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete
Arrays koennen gespeichert werden
Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als
'nosave' oder 'static' deklariert ist.
Bitte beachten, dass diese efun im MG durch eine Sefun ueberschrieben
wird und deren Manpage auch lesen!
BEMERKUNGEN:
Damit ein Objekt in Verzeichnisse der Region/des Magiers schreiben
kann, muss es entsprechende Rechte, also eine gueltige EUID
besitzen. Im create() sollte daher ein:
seteuid(getuid(this_object()));
stehen.
AENDERUNGEN
Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg.
Das direkte Abspeichern in einen String wurde in LDMud 3.2.8
eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun
umgezogen.
LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda
Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues
Format fuer die Speicherdatei eingefuehrt.
LDMud 3.2.10 fuehrte das Argument <format> ein.
SIEHE AUCH
restore_object(E), save_value(E), save_object (Sefun)