| package Prot6 is |
| |
| generic |
| type TD is private; |
| type TI is synchronized interface; |
| package Set_Get is |
| type T is synchronized interface and TI; |
| |
| procedure Set (E : in out T; D : TD) is abstract; |
| function Get (E : T) return TD is abstract; |
| end Set_Get; |
| |
| type My_Type_Interface is synchronized interface; |
| |
| package Set_Get_Integer is |
| new Set_Get (TD => Integer, |
| TI => My_Type_Interface); |
| use Set_Get_Integer; |
| |
| protected type My_Type is |
| new Set_Get_Integer.T with |
| |
| overriding procedure Set (D : Integer); |
| overriding function Get return Integer; |
| private |
| I : Integer; |
| end My_Type; |
| |
| procedure Dummy; |
| |
| end Prot6; |