1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
------------------------------------------------------------------------------
-- --
-- POLYORB COMPONENTS --
-- --
-- E C H O . I M P L --
-- --
-- B o d y --
-- --
-- Copyright (C) 2002-2008, 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, 59 Temple Place - Suite 330, --
-- Boston, MA 02111-1307, USA. --
-- --
-- --
-- PolyORB is maintained by ACT Europe. --
-- (email: sales@act-europe.fr) --
-- --
------------------------------------------------------------------------------
with Ada.Dynamic_Priorities;
with Ada.Text_IO;
with Echo.Skel;
pragma Warnings (Off);
-- Compiler wants Elaborate_All, but that causes cycles
pragma Elaborate (Echo.Skel);
pragma Warnings (On);
pragma Warnings (Off, Echo.Skel);
-- No entity from Echo.Skel is referenced.
with RTCORBA.PriorityMapping;
with PolyORB.RTCORBA_P.Setup;
with System;
package body Echo.Impl is
----------------
-- EchoString --
----------------
function EchoString
(Self : access Object;
Mesg : CORBA.String)
return CORBA.Short
is
pragma Warnings (Off);
pragma Unreferenced (Self);
pragma Warnings (On);
use Ada.Dynamic_Priorities;
use Ada.Text_IO;
Ada_Priority : constant System.Any_Priority := Get_Priority;
CORBA_Priority : RTCORBA.Priority;
Ok : Boolean;
begin
RTCORBA.PriorityMapping.To_CORBA
(PolyORB.RTCORBA_P.Setup.Get_Priority_Mapping.all,
RTCORBA.NativePriority (Ada_Priority),
CORBA_Priority,
Ok);
if not Ok then
raise Program_Error;
end if;
Put_Line ("In echo servant, running thread at "
& "Ada native priority"
& System.Any_Priority'Image (Ada_Priority)
& ", CORBA priority (approximation)"
& RTCORBA.Priority'Image (CORBA_Priority));
Put_Line
("Echoing string: " & CORBA.To_Standard_String (Mesg)
& " ");
return CORBA.Short (CORBA_Priority);
end EchoString;
end Echo.Impl;
|