module Rapids:Random Access Package Information Data Structure.sig..end
Provides a fast, indexed archive for working on historical metadata archives expressed in the NAPKIN format.
exception Conflicting_information of string
type liquid =
| |
RPM |
| |
Debian |
| |
Pkgsrc |
module type ORDERED_LITERATE =sig..end
module type STRING_ORDERED_LITERATE =sig..end
module Version_order:sig..end
module Release_order:sig..end
module type SET =sig..end
module type ID =sig..end
module type INDEX =sig..end
module type DOUBLE_INDEX =sig..end
module type VERSION_POOL =sig..end
module type LABELED_INDEX =sig..end
module type CHRONOLOGICAL_MAP =sig..end
typearchive_name =string
["debian";"stable";"main";"i386"]. However it is up to the user to enforce
constraints such as homogeneity of a given archive with respect to architecture.typearchitecture_name =string
typeunit_name =string
typeversion_name =string
typesource_name =unit_name * version_name
typesource_version_name =version_name
type version_number
type release_number
type version_id
type release_id
type unit_id
type source_id
type architecture_id
type package_id
type archive_id
typeglob =string
type archive
module Architecture_name:ORDERED_LITERATEwith type t = architecture_name
module Architecture_index:INDEXwith type elt = architecture_name and type id = architecture_id
module Unit_name:ORDERED_LITERATEwith type t = unit_name
module Package_ID:IDwith type id = package_id
module Package_set:SETwith type elt = package_id
module Unit_index:LABELED_INDEXwith type elt = unit_name and type id = unit_id
module Unit_set:SETwith type elt = unit_id
module Source_name:ORDERED_LITERATEwith type t = source_name
module Source_index:INDEXwith type elt = source_name and type id = source_id
module Source_set:SETwith type elt = source_id
module Version_index:VERSION_POOLwith type version = string and type id = version_id and type handle = version_number
module Release_index:VERSION_POOLwith type version = string option and type id = release_id and type handle = release_number
module Archive_index:LABELED_INDEXwith type elt = archive_name and type data = archive and type id = archive_id
module Archive_set:SETwith type elt = archive_id
typepackage_name =unit_id * version_id * release_id *
architecture_id
type package_extra
typepackage =(package_extra, unit_id,
version_number * release_number, glob,
architecture_id, source_id)
Napkin.package
module Package_index:DOUBLE_INDEXwith type e1 = package_name and type e2 = package and type id = package_id
typepackage_set =Package_set.t
typeunit_set =Unit_set.t
typesource_set =Source_set.t
typearchive_set =Archive_set.t
module Chronology:CHRONOLOGICAL_MAPwith type elt = Package_ID.id and type set = Package_set.t
Chronology module efficiently maps days to sets of packages.
type db
val create_database : unit -> dbval add_package : db -> Napkin.default_package -> package_idConflicting_information exception is raised. If the package had only its name interned, this will fill the
package's napkin.val replace_package : db -> package -> unitval self_test : db -> unitval get_liquid : db -> liquid optionval get_package_index : db -> Package_index.tval get_unit_index : db -> Unit_index.tval get_version_index : db -> Version_index.tval get_release_index : db -> Release_index.tval get_architecture_index : db -> Architecture_index.tval get_archive_index : db -> Archive_index.tval get_source_index : db -> Source_index.tval set_liquid : db -> liquid -> unitval split_version : string -> string * string optionval add_archive : db -> archive_name -> archive_idval get_archive : db -> archive_id -> archiveval get_archive_contents : archive -> Lifetime.day -> package_setval iterate_over_archive : (Lifetime.day -> package_set -> unit) -> archive -> unitval archive_range : db -> archive -> Lifetime.day * Lifetime.dayval add_packages_to_archive : db ->
archive -> package_set -> Lifetime.lifetime -> unitmodule Functions:sig..end