| |
2-20 PL-/icSprache, die Spezifikation, v1.0 Abbildet September 2002 2 ENDENVT_INCREF; vt_decref: PROC(vtptr); dclvtptr-PTRBYVALUE; vtbased(vtptr) des dcl 1, PTR mit 3 ctl, refcount 3 regelte bin(31); vt.refcount=vt.refcount-1; wenn vt.refcount=0 dann /* zerstören Sie valuetypestruktur* /; beenden Sie vt_decref; vt_refcount: PROC(vtptr, count); vtptr-PTRBYVALUE des dcl 1; dclzählimpuls reparierte bin(31) byaddr; vtbased(vtptr) des dcl 1, PTR mit 3 ctl, refcount 3 regelte bin(31); count=vt.refcount; ENDENVT_INCREF; vt_duplicate: PROC(vtptr1, vtptr2); /* Implementierung vergessenes */ ENDENVT_DUPLICATE; 2,12,6 WertcKästen Wertkästen werden zu PL/I auf eine ähnliche Art und Weise zu den Normalbetrieben abgebildet. Es gibt zwei vorhandene Wertkastenbetriebe, ein _ boxed_get und ein _ boxed_set beide vorgesetzt durch den valuetypenamen. Das _ boxed_get ist für valuetypeinhaltswiederherstellung und das _ boxed_set ist für das Ersetzen des Inhalts des valuetype. Wertkästen können seien für nur einfache Arten verwendet Sie. Diese bedecken (un)signed die Ganzzahlenarten, Boolesch, Oktett, verkohlen Sie, schwimmen Sie, (lange) Doppelte, aufgezählte Arten und Zeichenkettearten. Ein Beispiel von wie a Wertkasten konnte benutzt werden wird gezeigt unten. 2,12,7 WertcKastencBeispiel Ein Beispiel eines Zeichenkettewertkastens wird unten gezeigt. // IDL Zeichenkette valuetypeStringValue; Schnittstelle X { leere op(outzeichenkette S); }; |  |
|
| |
|
|