The unified diff between revisions [91e4a988..] and [cd10ac1d..] is displayed below. It can also be downloaded as a raw diff.

#
#
# add_file "GNUmakefile"
#  content [0a97336c25a9b774e14582dbc7f99d4bbb2e2e1b]
#
# add_file "server/demos.gpr"
#  content [4aa23bdb71dee7c4c675ce4c9b950b9b87c9bc84]
#
# patch "client/src/events_receivers-local_consoles.adb"
#  from [5c2fb91a4d5e33ad1d7e9b7d66e873a406e94228]
#    to [367b37a86beec6de889c26bfcdc7c20315e4b696]
#
# patch "client/src/events_receivers-local_consoles.ads"
#  from [cbb0b4552d8968b8c06c19cbd1f020d95a4b92e6]
#    to [65478b7be46cff39d6a76ab0287c944896c37f0a]
#
# patch "client/src/events_receivers.ads"
#  from [408b30663c0729a670bb57b307ac7d397778096c]
#    to [eaaea46e890658f00cdd6547a180f84f227bf129]
#
# patch "client/src/log4ada-appenders-annex_e.adb"
#  from [4070065c5a38167d139df11f3ea825cb0dbd6d76]
#    to [ea9e3f0f411768ecad209d1bf3e2889e9b960225]
#
# patch "client/src/log4ada-events.adb"
#  from [1ee15a6bee4093250fc417d4b5a622eed24bf969]
#    to [ead8e9ad4dec8a33884f9d4f416cdbe08a42342a]
#
# patch "client/src/log4ada-events.ads"
#  from [e8d553a674c57f898d8f672faf8b3de4580810d5]
#    to [c2877b9cc2e14831a8deaad45af25e4ff7bff91d]
#
# patch "server/GNUmakefile"
#  from [a5600745fe135995d43d114c3f2ec339f2a1c542]
#    to [81bb64576c5e2eceb040a9eddf7afe88def14217]
#
============================================================
--- GNUmakefile	0a97336c25a9b774e14582dbc7f99d4bbb2e2e1b
+++ GNUmakefile	0a97336c25a9b774e14582dbc7f99d4bbb2e2e1b
@@ -0,0 +1,12 @@
+DIRS=client server
+
+all:
+	for i in $(DIRS);do make -C $$i;done
+
+clean:
+	for i in $(DIRS);do make -C $$i clean;done
+	rm -f *~
+
+distclean:
+	for i in $(DIRS);do make -C $$i distclean;done
+	rm -f *~
\ No newline at end of file
============================================================
--- server/demos.gpr	4aa23bdb71dee7c4c675ce4c9b950b9b87c9bc84
+++ server/demos.gpr	4aa23bdb71dee7c4c675ce4c9b950b9b87c9bc84
@@ -0,0 +1,5 @@
+with "../client/log4Ada.gpr";
+
+project demos is
+   for Source_Dirs use ("src", "demos");
+end demos;
============================================================
--- client/src/events_receivers-local_consoles.adb	5c2fb91a4d5e33ad1d7e9b7d66e873a406e94228
+++ client/src/events_receivers-local_consoles.adb	367b37a86beec6de889c26bfcdc7c20315e4b696
@@ -18,7 +18,6 @@
 --  along with this library; if not, write to the Free Software Foundation, --
 --  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.          --
 --                                                                          --
-with Generic_Streaming;

 with Log4ada.Events;

@@ -30,18 +29,15 @@ package body Events_Receivers.Local_Cons

    procedure Send_Event
      (Events_Receiver : not null access Events_Display_Console_Type;
-      Event : Ada.Streams.Stream_Element_Array;
+      Event : String;
       Event_Type : Supported_Events_Type := Log4ada_Event)
    is
-      use Generic_Streaming;
-      Local_Stream : aliased Basic_Stream;
       Local_Event : Log4ada.Events.Event_Type;
    begin
       if Event_Type /= Log4ada_Event then
          raise Event_Type_Not_Supported;
       end if;
-      Write (Local_Stream, Event);
-      Local_Event := Log4ada.Events.Event_Type'Input (Local_Stream'Access);
+      Local_Event := Log4ada.Events.To_Event (Event);
       Log4ada.Loggers.Event_Out (Events_Receiver.Logger'Access, Local_Event);
    end Send_Event;

============================================================
--- client/src/events_receivers-local_consoles.ads	cbb0b4552d8968b8c06c19cbd1f020d95a4b92e6
+++ client/src/events_receivers-local_consoles.ads	65478b7be46cff39d6a76ab0287c944896c37f0a
@@ -25,7 +25,7 @@ package Events_Receivers.Local_Consoles
    type Events_Display_Console_Type is new Events_Receiver_Type with private;
    procedure Send_Event
      (Events_Receiver : not null access Events_Display_Console_Type;
-      Event : Ada.Streams.Stream_Element_Array;
+      Event : String;
       Event_Type : Supported_Events_Type := Log4ada_Event);
    procedure Initialise (Receiver : in out Events_Display_Console_Type;
                          Level : Log4ada.Level_Type);
============================================================
--- client/src/events_receivers.ads	408b30663c0729a670bb57b307ac7d397778096c
+++ client/src/events_receivers.ads	eaaea46e890658f00cdd6547a180f84f227bf129
@@ -18,7 +18,6 @@
 --  along with this library; if not, write to the Free Software Foundation, --
 --  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.          --
 --                                                                          --
-with Ada.Streams;

 package Events_Receivers is
    pragma Remote_Types;
@@ -27,7 +26,7 @@ package Events_Receivers is
    type Events_Receivers_Class_Access is access all Events_Receiver_Type'Class;
    procedure Send_Event
      (Events_Receiver : not null access Events_Receiver_Type;
-      Event : Ada.Streams.Stream_Element_Array;
+      Event : String;
       Event_Type : Supported_Events_Type := Log4ada_Event) is abstract;
    function Event_Receiver_Is_Alive
      (Events_Receiver : not null access Events_Receiver_Type) return Boolean;
============================================================
--- client/src/log4ada-appenders-annex_e.adb	4070065c5a38167d139df11f3ea825cb0dbd6d76
+++ client/src/log4ada-appenders-annex_e.adb	ea9e3f0f411768ecad209d1bf3e2889e9b960225
@@ -1,7 +1,7 @@
 ------------------------------------------------------------------------------
 --                                  Log4Ada                                 --
 --                                                                          --
---                         Copyright (C) 2007-2008                          --
+--                         Copyright (C) 2007-2009                          --
 --                              X. Grave CNRS                               --
 --                                                                          --
 --  This library is free software; you can redistribute it and/or modify    --
@@ -18,11 +18,8 @@
 --  along with this library; if not, write to the Free Software Foundation, --
 --  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.          --
 --                                                                          --
-with Ada.Streams;
 with System.RPC;

-with Generic_Streaming;
-
 package body Log4ada.Appenders.Annex_E is

    ------------
@@ -34,8 +31,6 @@ package body Log4ada.Appenders.Annex_E i
       Event : Events.Event_Type)
    is
       use type Events_Receivers.Events_Receivers_Class_Access;
-      use Generic_Streaming;
-      Local_Stream : aliased Basic_Stream;
    begin
       if not Remote_Appender.Enabled then
          return;
@@ -46,17 +41,13 @@ package body Log4ada.Appenders.Annex_E i
       if not Continue (Remote_Appender, Event) then
          return;
       end if;
-      Events.Event_Type'Output (Local_Stream'Access, Event);
       declare
-         Temp_Stream : constant Ada.Streams.Stream_Element_Array :=
-           Local_Stream.Data.all;
          Local_Receiver :
            constant Events_Receivers.Events_Receivers_Class_Access :=
            Remote_Appender.Event_Receiver;
       begin
-         Free (Local_Stream.Data);
          Events_Receivers.Send_Event (Local_Receiver,
-                                      Temp_Stream,
+                                      Events.To_String (Event),
                                       Events_Receivers.Log4ada_Event);
       exception
          when System.RPC.Communication_Error =>
============================================================
--- client/src/log4ada-events.adb	1ee15a6bee4093250fc417d4b5a622eed24bf969
+++ client/src/log4ada-events.adb	ead8e9ad4dec8a33884f9d4f416cdbe08a42342a
@@ -18,6 +18,7 @@
 --  along with this library; if not, write to the Free Software Foundation, --
 --  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.          --
 --                                                                          --
+
 package body Log4ada.Events is

    use Ada.Strings.Unbounded;
@@ -134,4 +135,101 @@ package body Log4ada.Events is
       return To_String (Event.Exception_To_Send_Message);
    end Get_Exception_Message;

+   Event_Separator : constant String := "<log4Ada_Tag>";
+   Missing_Separator : exception;
+
+   function Get_First_Value (Work_Event_String : Unbounded_String)
+                            return String;
+   function Get_First_Value_Unbounded (Work_Event_String : Unbounded_String)
+                                      return Unbounded_String;
+   procedure Cut_First_Value (Work_Event_String : in out Unbounded_String);
+
+   function To_Event (Event_String : String) return Event_Type is
+      Event : Event_Type;
+      Work_Event_String : Unbounded_String :=
+        To_Unbounded_String (Event_String);
+   begin
+      Event.Name := Get_First_Value_Unbounded (Work_Event_String);
+      Cut_First_Value (Work_Event_String);
+      Event.Location_Information :=
+        Get_First_Value_Unbounded (Work_Event_String);
+      Cut_First_Value (Work_Event_String);
+      Event.Level := Level_Type'Value (Get_First_Value (Work_Event_String));
+      Cut_First_Value (Work_Event_String);
+      Event.Timestamp := Integer'Value (Get_First_Value (Work_Event_String));
+      Cut_First_Value (Work_Event_String);
+      Event.Message := Get_First_Value_Unbounded (Work_Event_String);
+      Cut_First_Value (Work_Event_String);
+      Event.Logger_Name := Get_First_Value_Unbounded (Work_Event_String);
+      Cut_First_Value (Work_Event_String);
+      Event.Exception_Present :=
+        Boolean'Value (Get_First_Value (Work_Event_String));
+      if Event.Exception_Present then
+         Cut_First_Value (Work_Event_String);
+         Event.Exception_To_Send_Name :=
+           Get_First_Value_Unbounded (Work_Event_String);
+         Cut_First_Value (Work_Event_String);
+         Event.Exception_To_Send_Message :=
+           Get_First_Value_Unbounded (Work_Event_String);
+      else
+         Event.Exception_To_Send_Name := Null_Unbounded_String;
+         Event.Exception_To_Send_Message := Null_Unbounded_String;
+      end if;
+      return Event;
+   end To_Event;
+
+   function To_String (Event : Event_Type) return String is
+      String_To_Return : Unbounded_String := Event_Name;
+   begin
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Location_Information;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Level'Img;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Timestamp'Img;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Message;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Logger_Name;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Exception_Present'Img;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Exception_To_Send_Name;
+      String_To_Return := String_To_Return &
+        Event_Separator & Event.Exception_To_Send_Message;
+      return To_String (String_To_Return);
+   end To_String;
+
+   function Get_First_Value (Work_Event_String : Unbounded_String)
+                            return String is
+   begin
+      return To_String (Get_First_Value_Unbounded (Work_Event_String));
+   end Get_First_Value;
+
+   function Get_First_Value_Unbounded (Work_Event_String : Unbounded_String)
+                                      return Unbounded_String is
+      Separator_Position : constant Natural := Index (Work_Event_String,
+                                                      Event_Separator);
+   begin
+      if Separator_Position = 0 then
+         return Work_Event_String;
+      end if;
+      return Head (Work_Event_String, Separator_Position - 1);
+   end Get_First_Value_Unbounded;
+
+   procedure Cut_First_Value (Work_Event_String : in out Unbounded_String) is
+      Separator_Position : constant Natural := Index (Work_Event_String,
+                                                      Event_Separator);
+   begin
+      if Separator_Position = 0 then
+         raise Missing_Separator;
+      end if;
+      Tail (Work_Event_String,
+            Length (Work_Event_String) -
+            Separator_Position -
+            Event_Separator'Length + 1);
+   end Cut_First_Value;
+
+
+
 end Log4ada.Events;
============================================================
--- client/src/log4ada-events.ads	e8d553a674c57f898d8f672faf8b3de4580810d5
+++ client/src/log4ada-events.ads	c2877b9cc2e14831a8deaad45af25e4ff7bff91d
@@ -1,7 +1,7 @@
 ------------------------------------------------------------------------------
 --                                  Log4Ada                                 --
 --                                                                          --
---                            Copyright (C) 2007                            --
+--                         Copyright (C) 2007 - 2009                        --
 --                              X. Grave CNRS                               --
 --                                                                          --
 --  This library is free software; you can redistribute it and/or modify    --
@@ -57,6 +57,8 @@ package Log4ada.Events is
    pragma Inline (Get_Exception_Message);
    First_Event_Timestamp : Integer := 0;
    pragma Atomic (First_Event_Timestamp);
+   function To_Event (Event_String : String) return Event_Type;
+   function To_String (Event : Event_Type) return String;
 private
    type Event_Type is tagged record
       Name : Ada.Strings.Unbounded.Unbounded_String;
============================================================
--- server/GNUmakefile	a5600745fe135995d43d114c3f2ec339f2a1c542
+++ server/GNUmakefile	81bb64576c5e2eceb040a9eddf7afe88def14217
@@ -1,17 +1,9 @@ ARCH=$(shell uname -m)
 ARCH=$(shell uname -m)
-INCLUDES=-I../../../client/src -I../../src -I../../demos \
--I../../../utilities/src

 all:collector

-collector:obj/$(ARCH) bin/$(ARCH)
-	cd obj/$(ARCH); \
-	rm -f collector.cfg; \
-	ln -s ../../collector.cfg; \
-	gnatdist $(INCLUDES) collector.cfg; \
-	cp -f collector_server ../../bin/$(ARCH); \
-	cp -f test_remote_logging ../../bin/$(ARCH); \
-	cd ../..
+collector:
+	po_gnatdist -p -P demos collector.cfg

 clean:
 	rm -f `find . -name "*~"`
@@ -19,7 +11,7 @@ distclean:clean
 	rm -f `find . -name "*.ali"`

 distclean:clean
-	rm -Rf bin obj
+	rm -Rf bin obj dsa collector_server test_remote_logging

 obj/$(ARCH):
 	mkdir -p obj/$(ARCH)