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)