| |
| P_COMMANDS |
| ********** |
| |
| |
| NAME |
| ==== |
| |
| P_COMMANDS "commands" |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| <thing/commands.h> |
| |
| |
| 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: ({<fun1> ,... |
| '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: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>, |
| <2. Synonymgruppe, ...}), ...}) |
| Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... , |
| [, Index fuer write anstatt notify_fail]}), |
| ... }) |
| IDs: 0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ... |
| Cache: ({<closure fuer fun1>, ... |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Cache-Closures sind bei Export immer genullt |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| /std/thing/commands.c, AddCmd(), RemoveCmd() |
| |
| 16. Dez 2016 Gloinson |