with GNAT.Sockets ; with Ada.Calendar ; package logging.socket is type SocketDestination_Type is new Destination_Type with record s : GNAT.Sockets.Socket_Type ; dest : access GNAT.Sockets.Sock_Addr_Type ; Count : Integer := 0 ; end record; type SocketDestinationPtr_Type is access all SocketDestination_Type ; function Create (port : GNAT.Sockets.Port_Type ; host : String := "127.0.0.1" ) return SocketDestinationPtr_Type ; overriding procedure SendMessage ( dest : in out SocketDestination_Type ; message : String ; level : message_level_type := INFORMATIONAL ; source : String := Default_Source_Name ; class : String := Default_Message_Class ) ; overriding procedure Close(dest : SocketDestination_Type) ; MAX_MESSAGE_SIZE : constant := Short_Short_Integer'last ; type Message_Type is record t : Ada.Calendar.Time ; Seq : Integer ; l : message_level_type ; s : Source_Name_Type ; c : Message_Class_Type ; ml : Short_Short_Integer ; mt : String(1..MAX_MESSAGE_SIZE) ; end record ; end logging.socket ;