Dokumentation zu: memory(WL)

HR Image


KONZEPT
        /secure/memory.c - Benutzung des Speichers

AUTOR
        Holger@Wunderland (23.04.1999)

BESCHREIBUNG
        Das Memory ist ein universelles Frontend fuer die Extra-Wizinfo.
        Jedes autorisierte Objekt kann beliebige Variablen darin ablegen
        und globale Variablen auch referenzieren. Welchen Typ die Variablen
        haben, ist unerheblich.

SICHERHEIT
        - Objekte, die das Memory benutzen wollen, muessen in allowed() ge-
          trusted werden.
        - Auch zugelassene Objekte haben nur Zugriff auf ihre EIGENEN Daten.

FUNKTIONEN
        int put(string key, mixed var);
        
        Erzeugt einen Eintrag 'key' dem der Wert der Variable 'var' zugewie-
        sen wird. War die Zuweisung erfolgreich, wird 1 zurueckgegeben. Bei
        fehlender Autorisation oder bei einem Argumentfehler wird 0 zurueck-
        gegeben.

        mixed get(string key);

        Liefert den Wert, der zum Eintrag 'key' gespeichert ist. Es wird da-
        bei keine Kopie, sondern eine Referenz geliefert! Ist das Objekt
        nicht autorisiert, gab es einen Fehler oder gibt es keinen Eintrag
        'key' wird 0 zurueckgegeben. Um zu testen, ob das Resultat wirklich
        der Wert von 'key' ist oder ob es den Eintrag nicht gibt, ist die
        Funktion test() zu verwenden.

        int test(string key);

        Testet, ob es einen Eintrag 'key' gibt. Dies ist notwendig, da mit
        get() dies nicht zweifelsfrei festgestellt werden kann.

        varargs int wash(string key);

        Diese Funktion loescht den Eintrag 'key', wenn dies angegeben wurde.
        Ist 'key' nicht angegeben oder 0 werden _ALLE_ Eintraege entfernt.

BEISPIEL
        Man schreibt ein Objekt, was seine Daten konsistent halten MUSS,
        auch, wenn es mal neu geladen wird. Man trustet das Objekt im Ge-
        hirn, indem man einen Erzmagier bittet, das mal zu tun.

        Man kann jetzt mittels put(), get() und test() Daten in das Memory
        legen legen oder abrufen. Man kann diese eingetragenen Daten auch
        an Variablen referenzieren, dann eruebrigen sich weitere put() und
        get() und die Daten sind staenig sicher.

        Nach einem Neuladen des Objekts sind die Daten aus dem Memory ver-
        fuegbar. Auch das Memory selbst verliert seine Daten durch ein
        removen/destructen NICHT.

BEACHTE
        Variablen die Referenzen in das Memory haben, sollten nicht nach
        'aussen' dringen. Es ist nicht Sinn und Zweck des Memorys Unmengen
        an unempfindlichen Daten aufzubewahren. Sowas vergeudet nur wert-
        vollen RAM.

SIEHE AUCH
        set_extra_wizinfo(E), get_extra_wizinfo(E), reference(LPC)


Start » Magierhandbuch » Docu » Konzepte » Memory Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!