with Schema;
use Schema;
package Database_Interface is
    --------------------------------------------------------------------------
    -- Each of the following functions will take as input a test name,
    -- and return as output either a single object or a list of objects
    -- as determined by the specific function called.
    --------------------------------------------------------------------------
    function Get_Description (Input_Name : Name_Type) return Description_Type;
    function Get_Arch_Category (Input_Name : Name_Type)
                               return Architecture_Category_Type;
    function Get_E_And_V_Categories
                (Input_Name : Name_Type) return E_And_V_Criteria_List;
    function Get_Features (Input_Name : Name_Type)
                          return Language_Features_List;
    function Get_Statistics (Input_Name : Name_Type) return Statistics_Type;
    function Get_Version (Input_Name : Name_Type) return Version_Type;

    function Names (Attribute : Architecture_Category_Type) return Name_List;
    function Names (Attribute : E_And_V_Criterion_Abbreviation_Type)
                   return Name_List;
    function Names (Attribute : Statistics_Type) return Name_List;
    function Names (Attribute : Version_Type) return Name_List;
    function Names (Attribute : Language_Feature_Abbreviation_Type)
                   return Name_List;

    Not_Found,                       -- raised when unit is not in database
    Consistency_Error : exception; -- raised when database file is corrupted

end Database_Interface;
--***********************************************************************