P_COMMANDS ========== NAME ---- :: P_COMMANDS "commands" DEFINIERT IN ------------ :: BESCHREIBUNG ------------ :: Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt zugeordnet sind. Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die Funktionen AddCmd() und RemoveCmd(). Das Mapping hat folgenden Aufbau: ([ befehl : ({funktion1,...}); ({flag1,...}); ({regel1,...}); ({id1, ...}), ({closure auf fun1, ...}), ... ]) Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind aber in anderer Form. Als Beispiel: AddCmd(verb,fun1,1); AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2, error1_notify|error2_notify^error2_write); --> ([verb: ({fun1,fun2}); // funs ({1,({error1_notify, error2_write^error2_say, 1})}); // flags ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})}); // rules 0; // IDs ({closure auf fun1, closure auf fun2}) ]) // Cache Funs: ({ ,... 'fun' kann sein: Closure String: Methodenname - wird etwas geprueft Objekt: wenn keine Methode, this_object() fuer intern, previous_object() fuer extern 0 (erloschenes externes Objekt) Rules: ({, ({<1. Synonymgruppe>, <2. Synonymgruppe, ...}), ...}) Flags: ({, ({, ... , [, Index fuer write anstatt notify_fail]}), ... }) IDs: 0 oder ({}) oder ({0, }) ... Cache: ({, ... BEMERKUNGEN ----------- :: Cache-Closures sind bei Export immer genullt SIEHE AUCH ---------- :: /std/thing/commands.c, AddCmd(), RemoveCmd() 16. Dez 2016 Gloinson