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