Doku fuer F_SET_MAPPER, SETMAPPED
Doku wurde versehentlich der autogenerierten Manpage hinzugefuegt
und ueberschrieben. Jetzt auch im richtigen File...
Change-Id: Ie45bee9eaf0fb24034c1351c681020bfdae4a2fd
diff --git a/doc/sphinx/lfun/Set.rst b/doc/sphinx/lfun/Set.rst
index bf2dbad..df20c4a 100644
--- a/doc/sphinx/lfun/Set.rst
+++ b/doc/sphinx/lfun/Set.rst
@@ -67,13 +67,35 @@
Property nicht mehr ueber SetProp() aenderbar
(damit entfallen auch SET_METHOD, _set_'name')
+
+ SETMAPPED
+
+ Die Set-Methode speichert den Werte nicht selber, sondern gibt
+ ihn zurueck, das Property-System speichert ihn dann.
+ WARNUNG: Dieses Flag nicht per Hand manipulieren.
+
F_SET_METHOD
Aendert den Eintrag fuer eine SetMethod - eine Closure, die anstatt
des Setzens der Property beim Aufruf von SetProp mit 'Value'
- aufgerufen wird.
+ aufgerufen wird. Die Closure sollte den neuen Wert der Property
+ zurueckliefern. Die Propertyverwaltung aendert hierbei F_VALUE aber
+ nicht, dies muss die Closure tun.
+
+ F_SET_MAPPER
+ Setzt wie F_SET_METHOD eine Set-Methode (Closure), welche aber den Wert
+ der Property beim Aufruf nicht selber (durch Aufruf von Set()) setzt,
+ sondern den Wert zurueckgeben muss, der gesetzt werden soll.
+ Setzt eine F_SET_METHOD und das Flag SETMAPPED
+ Bsp. #'copy um vor dem Speichern eine Kopie zu erstellen
+
F_QUERY_METHOD
Aendert den Eintrag fuer eine QueryMethod - eine Closure, die anstatt
des Lesens der Property beim Aufruf von QueryProp aufgerufen wird.
+ Diese bekommt den gespeicherten Wert der Property uebergeben und muss
+ den an den Aufrufer von QueryProp() zurueckzugebenden Wert
+ zurueckgeben.
+ Bsp: #'copy, um eine Kopie des gespeicherten Wertes zurueckzugeben
+
RUeCKGABEWERT
-------------
@@ -127,9 +149,7 @@
// Loeschen des SAVE-Flags
Set(P_XYZ, SAVE, F_MODE_AD);
-
-
- // Negieren des bisherigen SAVE-Flags
+ // Negieren (Umschalten) des bisherigen SAVE-Flags
Set(P_XYZ, SAVE, F_MODE);
// Hinweis: das Setzen des Flags funktioniert mittels F_MODE nur dann,
// wenn sichergestellt ist, dass es vorher nicht gesetzt war. Die
@@ -151,11 +171,17 @@
Set(P_XYZ, #'foo, F_SET_METHOD);
...
+ // Setzen einer Mapperfunktion , welche alle Werte mit 100 multipliziert
+ int scale(int val) {return val * 100;}
+ Set(P_XYZ, #'scale, F_SET_MAPPER);
+
// Setzen einer QueryMethod bei einem anderen Objekt
- mixed bar();
+ mixed bar(mixed f_value);
...
other->Set(P_XYZ, #'bar, F_QUERY_METHOD);
...
+ // Query-Methode, die beim Abruf eine Kopie des Werts erstellt
+ Set(P_XYZ, #'copy, F_QUERY_METHOD);
// Der Vollstaendigkeit halber sei das Aendern einer Property unter
// Umgehung von Set-Methoden angegeben. Es ist aber aus o.g. Gruenden