This file is indexed.

/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;