Next: , Previous: Pragma Ident, Up: Implementation Defined Pragmas


Pragma Implemented_By_Entry

Syntax:

     pragma Implemented_By_Entry (LOCAL_NAME);

This is a representation pragma which applies to protected, synchronized and task interface primitives. If the pragma is applied to primitive operation Op of interface Iface, it is illegal to override Op in a type that implements Iface, with anything other than an entry.

     type Iface is protected interface;
     procedure Do_Something (Object : in out Iface) is abstract;
     pragma Implemented_By_Entry (Do_Something);
     
     protected type P is new Iface with
        procedure Do_Something;  --  Illegal
     end P;
     
     task type T is new Iface with
        entry Do_Something;      --  Legal
     end T;

NOTE: The pragma is still in its design stage by the Ada Rapporteur Group. It is intended to be used in conjunction with dispatching requeue statements as described in AI05-0030. Should the ARG decide on an official name and syntax, this pragma will become language-defined rather than GNAT-specific.