DocAda(tm) is a productivity tool of KSCE
|
|
|
| 
About DocAda Light:
Preface / Preliminary
/ Help
/ TOC
/ Copyright
DocAda Online at the Ada Home:
Complete RM95
/ Updates
/ News
E.2.2 Remote Types Library Units
A remote types library unit supports the definition of types intended for
use in communication between active partitions.
Syntax
- The form of a pragma Remote_Types is as follows:
pragma Remote_Types[(library_unit_name)];
Legality Rules
A remote types library unit is a library unit to which the pragma Remote_Types applies. The following restrictions apply to the declaration of such a
library unit:
- it shall be preelaborable;
- it shall depend semantically only on declared pure, shared
passive, or other remote types library units;
- it shall not contain the declaration of any variable within the
visible part of the library unit;
- if the full view of a type declared in the visible part of the
library unit has a part that is of a non-remote access type, then
that access type, or the type of some part that includes the
access type subcomponent, shall have user-specified Read and
Write attributes.
An access type declared in the visible part of a remote types or remote
call interface library unit is called a remote access type. Such a type
shall be either an access-to-subprogram type or a general access type that
designates a class-wide limited private type.
The following restrictions apply to the use of a remote
access-to-subprogram type:
- A value of a remote access-to-subprogram type shall be converted
only to another (subtype-conformant) remote access-to-subprogram
type;
- The prefix of an Access attribute_reference that yields a value
of a remote access-to-subprogram type shall statically denote a
(subtype-conformant) remote subprogram.
The following restrictions apply to the use of a remote
access-to-class-wide type:
- The primitive subprograms of the corresponding specific limited
private type shall only have access parameters if they are
controlling formal parameters; the types of all the
non-controlling formal parameters shall have Read and Write
attributes.
- A value of a remote access-to-class-wide type shall be explicitly
converted only to another remote access-to-class-wide type;
- A value of a remote access-to-class-wide type shall be
dereferenced (or implicitly converted to an anonymous access
type) only as part of a dispatching call where the value
designates a controlling operand of the call (see E.4, ``Remote
Subprogram Calls'');
- The Storage_Pool and Storage_Size attributes are not defined for
remote access-to-class-wide types; the expected type for an
allocator shall not be a remote access-to-class-wide type; a
remote access-to-class-wide type shall not be an actual parameter
for a generic formal access type;
NOTES
(5) A remote types library unit need not be pure, and the types it
defines may include levels of indirection implemented by using access
types. User-specified Read and Write attributes (see 13.13.2) provide
for sending values of such a type between active partitions, with Write
marshalling the representation, and Read unmarshalling any levels of
indirection.
About DocAda Light:
Preface / Preliminary
/ Help
/ TOC
/ Copyright
DocAda Online at the Ada Home:
Complete RM95
/ Updates
/ News
|
|
|
| 
Copyright © 1994-1997
by Kempe Software Capital Enterprises.
All Rights Reserved.
For comments on this DocAda(tm)
hypertext document, please write to KSCE, at
docada@ksce.com