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_LITERATE
with type t = architecture_name
module Architecture_index:INDEX
with type elt = architecture_name and type id = architecture_id
module Unit_name:ORDERED_LITERATE
with type t = unit_name
module Package_ID:ID
with type id = package_id
module Package_set:SET
with type elt = package_id
module Unit_index:LABELED_INDEX
with type elt = unit_name and type id = unit_id
module Unit_set:SET
with type elt = unit_id
module Source_name:ORDERED_LITERATE
with type t = source_name
module Source_index:INDEX
with type elt = source_name and type id = source_id
module Source_set:SET
with type elt = source_id
module Version_index:VERSION_POOL
with type version = string and type id = version_id and type handle = version_number
module Release_index:VERSION_POOL
with type version = string option and type id = release_id and type handle = release_number
module Archive_index:LABELED_INDEX
with type elt = archive_name and type data = archive and type id = archive_id
module Archive_set:SET
with 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_INDEX
with 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_MAP
with 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 -> db
val add_package : db -> Napkin.default_package -> package_id
Conflicting_information
exception is raised. If the package had only its name interned, this will fill the
package's napkin.val replace_package : db -> package -> unit
val self_test : db -> unit
val get_liquid : db -> liquid option
val get_package_index : db -> Package_index.t
val get_unit_index : db -> Unit_index.t
val get_version_index : db -> Version_index.t
val get_release_index : db -> Release_index.t
val get_architecture_index : db -> Architecture_index.t
val get_archive_index : db -> Archive_index.t
val get_source_index : db -> Source_index.t
val set_liquid : db -> liquid -> unit
val split_version : string -> string * string option
val add_archive : db -> archive_name -> archive_id
val get_archive : db -> archive_id -> archive
val get_archive_contents : archive -> Lifetime.day -> package_set
val iterate_over_archive : (Lifetime.day -> package_set -> unit) -> archive -> unit
val archive_range : db -> archive -> Lifetime.day * Lifetime.day
val add_packages_to_archive : db ->
archive -> package_set -> Lifetime.lifetime -> unit
module Functions:sig
..end