| 4D v18Storage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 Storage 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Storage -> Funktionsergebnis | ||||||||
| Parameter | Typ | Beschreibung | ||||||
| Funktionsergebnis | Objekt |   | Katalog der eingetragenen shared objects und shared collections | |||||
Die Funktion Storage gibt den Katalog der eingetragenen shared objects oder shared collections zurück, die im Objekt Storage auf dem aktuellen Rechner oder der Komponente eingetragen sind.
Der von Storage zurückgegebene Katalog wird von 4D automatisch erstellt und ist für alle Prozesse der Anwendung, inkl. preemptive Prozesse verfügbar. Es gibt einen Katalog Storage pro Rechner und pro Komponente: In einer Client/Server Anwendung gibt es ein shared object Storage auf dem Server und ein shared object Storage auf jeder remote 4D Applikation; verwendet die Anwendung Komponenten, hat jede Komponente ein eigenes shared object Storage.
Der Katalog Storage dient als Referenz auf shared objects/collections, die ein preemptive oder standardmäßiger Prozess verwenden soll. Um ein shared object/collection im Katalog einzutragen, fügen Sie die jeweilige Referenz ein, die von Storage zurückgegeben wird.
Da der von Storage zurückgegebene Katalog ein shared object ist, folgt er den auf der Seite Shared Objects und Shared Collections beschriebenen Regeln. Es gibt jedoch folgende Besonderheiten:
Ein gängiges Beispiel ist, das Objekt Storage in der zu initialisieren:
 Use(Storage)
    Storage.counters:=New shared object("customers";0;"invoices";0)
 End useDieses Beispiel zeigt einen Standardweg zum Setzen von Storage Werten:
 Use(Storage)
    Storage.mydata:=New shared object
    Use(Storage.mydata)
       Storage.mydata.prop1:="Smith"
       Storage.mydata.prop2:=100
    End use
 End useStorage ermöglicht, ein Singleton (Entwurfsmuster) mit einer lazy initialization zu implementieren:
HInweis: Weitere Informationen dazu finden Sie auf folgender Wikipedia Seite.
 C_LONGINT($0)
 C_LONGINT($counterValue)
 C_OBJECT(counter) //Eine Referenz auf "counter" für den Prozess erzeugen
 
 If(counter=Null) //Ist diese Referenz Null, diese von Storage erhalten
    Use(Storage) // Storage wird nur einmal benötigt!
       If(Storage.counter=Null)
          Storage.counter:=New shared object("operation";0)
       End if
       counter:=Storage.counter //Referenz von shared object "counter" erhalten
    End use
 End if
 Use(counter) //das shared object "counter" direkt verwenden (Storage wird nicht benötigt!)
    counter.operation:=counter.operation+1
    $counterValue:=counter.operation
 End use
 
 $0:=$counterValue
	Produkt: 4D
	Thema: Objekte (Sprache)
	Nummer: 
        1525
        
        
        
	
	Erstellt: 4D v16 R6
	
	
	
	
	
	
	
	
	
	4D Programmiersprache ( 4D v18)
	
	
	
	
	
 Fehler melden
Fehler melden