Next: , Previous: Most Features in One Example, Up: DSA


8.4 A small example of a DSA application

In this section we will write a very simple client-server application using PolyORB DSA. The server will provide a Remote Call Interface composed of a single Echo_String function that will take a String and return it to the caller.

Here is the code for the server:

server.ads:

     
     package Server is
        pragma Remote_Call_Interface;
        function Echo_String (S : String) return String;
     end Server;
     

server.adb:

     
     package body Server is
     
        function Echo_String (S : String) return String is
        begin
           return S;
        end Echo_String;
     
     end Server;
     

And here is the code for the client:

client.adb:

     
     ------------------------------------------------------------------------------
     --                                                                          --
     --                           POLYORB COMPONENTS                             --
     --                                                                          --
     --                               C L I E N T                                --
     --                                                                          --
     --                                 B o d y                                  --
     --                                                                          --
     --           Copyright (C) 2011, Free Software Foundation, Inc.             --
     --                                                                          --
     -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
     -- under terms of the  GNU General Public License as published by the  Free --
     -- Software Foundation;  either version 2,  or (at your option)  any  later --
     -- version. PolyORB is distributed  in the hope that it will be  useful,    --
     -- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
     -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
     -- License  for more details.  You should have received  a copy of the GNU  --
     -- General Public License distributed with PolyORB; see file COPYING. If    --
     -- not, write to the Free Software Foundation, 51 Franklin Street, Fifth    --
     -- Floor, Boston, MA 02111-1301, USA.                                       --
     --                                                                          --
     --                                                                          --
     --                  PolyORB is maintained by AdaCore                        --
     --                     (email: sales@adacore.com)                           --
     --                                                                          --
     ------------------------------------------------------------------------------
     
     with Ada.Exceptions;
     with Ada.Text_IO; use Ada.Text_IO;
     with Server;
     
     procedure Client is
     begin
        Put_Line ("The client has started!");
        Put ("Thus spake my server upon me:");
        Put_Line (Server.Echo_String ("Hi!"));
     exception
        when E : others =>
           Put_Line ("Got " & Ada.Exceptions.Exception_Information (E));
     end Client;
     

For more details about the Distributed Systems Annex, see the Ada Reference Manual [ISO06].