blob: bc0cb85d7ad8e3f54aafc3012a54c45d22db0d33 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001P_COMMANDS
2==========
3
4NAME
5----
6::
7
8 P_COMMANDS "commands"
9
10DEFINIERT IN
11------------
12::
13
14 <thing/commands.h>
15
16BESCHREIBUNG
17------------
18::
19
20 Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
21 zugeordnet sind.
22
23 Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
24 Funktionen AddCmd() und RemoveCmd().
25
26 Das Mapping hat folgenden Aufbau:
27
28 ([ befehl : ({funktion1,...});
29 ({flag1,...});
30 ({regel1,...});
31 ({id1, ...}),
32 ({closure auf fun1, ...}),
33 ... ])
34
35 Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
36 aber in anderer Form. Als Beispiel:
37
38 AddCmd(verb,fun1,1);
39 AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
40 error1_notify|error2_notify^error2_write);
41 -->
42 ([verb:
43 ({fun1,fun2}); // funs
44 ({1,({error1_notify, error2_write^error2_say, 1})}); // flags
45 ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})}); // rules
46 0; // IDs
47 ({closure auf fun1, closure auf fun2}) ]) // Cache
48
49 Funs: ({<fun1> ,...
50 'fun' kann sein: Closure
51 String: Methodenname - wird etwas geprueft
52 Objekt: wenn keine Methode, this_object() fuer
53 intern, previous_object() fuer extern
54 0 (erloschenes externes Objekt)
55 Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
56 <2. Synonymgruppe, ...}), ...})
57 Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
58 [, Index fuer write anstatt notify_fail]}),
59 ... })
60 IDs: 0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
61 Cache: ({<closure fuer fun1>, ...
62
63BEMERKUNGEN
64-----------
65::
66
67 Cache-Closures sind bei Export immer genullt
68
69SIEHE AUCH
70----------
71::
72
73 /std/thing/commands.c, AddCmd(), RemoveCmd()
74
7516. Dez 2016 Gloinson
76