/usr/share/ada/adainclude/alog/alog-maps.ads is in libalog0.4.1-base-dev 0.4.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | --
-- Copyright (c) 2009,
-- Reto Buerki, Adrian-Ken Rueegsegger
--
-- This file is part of Alog.
--
-- Alog is free software; you can redistribute it and/or modify
-- it under the terms of the GNU Lesser General Public License as published
-- by the Free Software Foundation; either version 2.1 of the License, or
-- (at your option) any later version.
--
-- Alog is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public License
-- along with Alog; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-- MA 02110-1301 USA
--
with Ada.Strings.Unbounded.Hash;
with Ada.Containers.Hashed_Maps;
-- Alog maps package. Provides map data types.
package Alog.Maps is
type Wildcard_Level_Map is tagged private;
-- A map of loglevels with string as key type.
type Cursor is private;
-- Index for a map element.
No_Element : constant Cursor;
Wildcard : constant Character := '*';
-- Character used as wildcard indicator in lookups.
function Element
(Map : Wildcard_Level_Map;
Key : String)
return Log_Level;
-- Returns the loglevel element for given key.
function Element (Position : Cursor) return Log_Level;
-- Returns the loglevel element at given position.
function Find
(Map : Wildcard_Level_Map;
Key : String)
return Cursor;
-- Returns the position for an element with specified key. If no element is
-- found No_Element is returned.
function Lookup
(Map : Wildcard_Level_Map;
Key : String)
return Cursor;
-- Returns the position of the element with the closest match to given key.
-- This function considers wildcards when searching for an element.
--
-- Example: Key | Element
-- -------------------
-- Foo.* | Debug
-- Foo.Bar | Alert
--
-- A lookup for "Foo.Foo" has no exact match. The next closest match is
-- "Foo.*" which will return the Debug element. Looking for "Foo" will
-- return Debug since it matches the wildcard "Foo.*".
--
-- If no exact and wildcard match is found No_Element is returned.
procedure Insert
(Map : in out Wildcard_Level_Map;
Key : String;
Item : Log_Level);
-- Insert given key/item pair into map. If given key is already present the
-- associated item is replaced.
procedure Clear (Map : in out Wildcard_Level_Map);
-- Clears the wildcard map.
function Length (Map : Wildcard_Level_Map) return Natural;
-- Return the number of elements in the map.
private
use Ada.Strings.Unbounded;
package Map_Of_Loglevels_Package is new Ada.Containers.Hashed_Maps
(Key_Type => Unbounded_String,
Element_Type => Log_Level,
Hash => Hash,
Equivalent_Keys => "=");
package MOLP renames Map_Of_Loglevels_Package;
type Wildcard_Level_Map is tagged record
Data : MOLP.Map;
end record;
type Cursor is new MOLP.Cursor;
No_Element : constant Cursor := Cursor (MOLP.No_Element);
end Alog.Maps;
|