OSDN Git Service

* gcc.dg/attr-weakref-1.c: Add exit (0) to avoid spurious
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-chtgop.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT LIBRARY COMPONENTS                          --
4 --                                                                          --
5 --                       A D A . C O N T A I N E R S .                      --
6 --       H A S H _ T A B L E S . G E N E R I C _ O P E R A T I O N S        --
7 --                                                                          --
8 --                                 S p e c                                  --
9 --                                                                          --
10 -- This specification is adapted from the Ada Reference Manual for use with --
11 -- GNAT.  In accordance with the copyright of that document, you can freely --
12 -- copy and modify this specification,  provided that if you redistribute a --
13 -- modified version,  any changes that you have made are clearly indicated. --
14 --                                                                          --
15 ------------------------------------------------------------------------------
16
17 with Ada.Streams;
18
19 generic
20
21    with package HT_Types is
22      new Generic_Hash_Table_Types (<>);
23
24    use HT_Types;
25
26    with function Hash_Node (Node : Node_Access) return Hash_Type;
27
28    with function Next (Node : Node_Access) return Node_Access;
29
30    with procedure Set_Next
31      (Node : Node_Access;
32       Next : Node_Access);
33
34     with function Copy_Node (Source : Node_Access) return Node_Access;
35
36    with procedure Free (X : in out Node_Access);
37
38 package Ada.Containers.Hash_Tables.Generic_Operations is
39    pragma Preelaborate;
40
41    procedure Free_Hash_Table (Buckets : in out Buckets_Access);
42
43    function Index
44      (Buckets : Buckets_Type;
45       Node    : Node_Access) return Hash_Type;
46    pragma Inline (Index);
47
48    function Index
49      (Hash_Table : Hash_Table_Type;
50       Node       : Node_Access) return Hash_Type;
51    pragma Inline (Index);
52
53    procedure Adjust (HT : in out Hash_Table_Type);
54
55    procedure Finalize (HT : in out Hash_Table_Type);
56
57    generic
58       with function Find
59         (HT  : Hash_Table_Type;
60          Key : Node_Access) return Boolean;
61    function Generic_Equal
62      (L, R : Hash_Table_Type) return Boolean;
63
64    procedure Clear (HT : in out Hash_Table_Type);
65
66    procedure Move (Target, Source : in out Hash_Table_Type);
67
68    function Capacity (HT : Hash_Table_Type) return Count_Type;
69
70    procedure Reserve_Capacity
71      (HT : in out Hash_Table_Type;
72       N  : Count_Type);
73
74    procedure Delete_Node_Sans_Free
75      (HT : in out Hash_Table_Type;
76       X  : Node_Access);
77
78    function First (HT : Hash_Table_Type) return Node_Access;
79
80    function Next
81      (HT   : Hash_Table_Type;
82       Node : Node_Access) return Node_Access;
83
84    generic
85       with procedure Process (Node : Node_Access);
86    procedure Generic_Iteration (HT : Hash_Table_Type);
87
88    generic
89       use Ada.Streams;
90       with procedure Write
91         (Stream : access Root_Stream_Type'Class;
92          Node   : Node_Access);
93    procedure Generic_Write
94      (Stream : access Root_Stream_Type'Class;
95       HT     : Hash_Table_Type);
96
97    generic
98       use Ada.Streams;
99       with function New_Node (Stream : access Root_Stream_Type'Class)
100          return Node_Access;
101    procedure Generic_Read
102      (Stream : access Root_Stream_Type'Class;
103       HT     : out Hash_Table_Type);
104
105 end Ada.Containers.Hash_Tables.Generic_Operations;