1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME COMPONENTS -- 4-- -- 5-- S Y S T E M . R P C -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- 10-- -- 11-- This specification is derived from the Ada Reference Manual for use with -- 12-- GNAT. The copyright notice above, and the license provisions that follow -- 13-- apply solely to the contents of the part following the private keyword. -- 14-- -- 15-- GNAT is free software; you can redistribute it and/or modify it under -- 16-- terms of the GNU General Public License as published by the Free Soft- -- 17-- ware Foundation; either version 3, or (at your option) any later ver- -- 18-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 19-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 20-- or FITNESS FOR A PARTICULAR PURPOSE. -- 21-- -- 22-- As a special exception under Section 7 of GPL version 3, you are granted -- 23-- additional permissions described in the GCC Runtime Library Exception, -- 24-- version 3.1, as published by the Free Software Foundation. -- 25-- -- 26-- You should have received a copy of the GNU General Public License and -- 27-- a copy of the GCC Runtime Library Exception along with this program; -- 28-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 29-- <http://www.gnu.org/licenses/>. -- 30-- -- 31-- GNAT was originally developed by the GNAT team at New York University. -- 32-- Extensive contributions were provided by Ada Core Technologies Inc. -- 33-- -- 34------------------------------------------------------------------------------ 35 36-- Note: this is a dummy implementation which does not support distribution. 37-- The GLADE distribution package includes a replacement for this file which 38-- has a different private 39 40with Ada.Streams; 41 42package System.RPC is 43 44 type Partition_ID is range 0 .. 63; 45 -- This type must not be modified without checking the code in 46 -- a-except.adb, since it expects a Partition_ID whose string 47 -- representation fits on two characters. 48 49 Communication_Error : exception; 50 51 type Params_Stream_Type 52 (Initial_Size : Ada.Streams.Stream_Element_Count) is new 53 Ada.Streams.Root_Stream_Type with private; 54 55 overriding procedure Read 56 (Stream : in out Params_Stream_Type; 57 Item : out Ada.Streams.Stream_Element_Array; 58 Last : out Ada.Streams.Stream_Element_Offset); 59 60 overriding procedure Write 61 (Stream : in out Params_Stream_Type; 62 Item : Ada.Streams.Stream_Element_Array); 63 64 -- Synchronous call 65 66 procedure Do_RPC 67 (Partition : Partition_ID; 68 Params : access Params_Stream_Type; 69 Result : access Params_Stream_Type); 70 71 -- Asynchronous call 72 73 procedure Do_APC 74 (Partition : Partition_ID; 75 Params : access Params_Stream_Type); 76 77 -- The handler for incoming RPCs 78 79 type RPC_Receiver is 80 access procedure 81 (Params : access Params_Stream_Type; 82 Result : access Params_Stream_Type); 83 84 procedure Establish_RPC_Receiver ( 85 Partition : Partition_ID; 86 Receiver : RPC_Receiver); 87 88private 89 90 type Params_Stream_Type 91 (Initial_Size : Ada.Streams.Stream_Element_Count) is new 92 Ada.Streams.Root_Stream_Type with null record; 93 94end System.RPC; 95