Exheredludis/doc/api/cplusplus/groups.doxygen
2011-06-16 19:45:19 +01:00

370 lines
7.9 KiB
C++

/* vim: set ft=cpp tw=80 sw=4 et : */
using namespace paludis;
/** \defgroup g_paludis Paludis
*
* Paludis public API.
*/
/** \defgroup g_about About
*
* \ingroup g_paludis
*
* Information about Paludis (version, build options etc).
*
* \section Examples
*
* - \ref example_about.cc "example_about.cc"
*/
/** \defgroup g_actions Actions
*
* \ingroup g_package_id
*
* Action-related classes are used to provide the information needed by a
* PackageID to perform operations such as installing, uninstalling and fetching.
*
* \section Examples
*
* - \ref example_action.cc "example_action.cc"
*/
/** \defgroup g_choices Choices
*
* \ingroup g_package_id
*
* Choices represent things like USE flags, the various USE_EXPAND values
* (LINGUAS, VIDEO_CARDS etc) and fancy things like build_options.
*
* \since 0.32
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_contents Contents
*
* \ingroup g_metadata_key
*
* Contents heirarchies can be used to iterate over the content of an installed
* or binary package.
*
* \section Examples
*
* - \ref example_contents.cc "example_contents.cc"
*/
/** \defgroup g_literal_metadata_key Literal Metadata Keys
*
* \ingroup g_metadata_key
*
* Implementations of MetadataKey subclasses where the value is a literal string
* known at construction time.
*/
/** \defgroup g_dep_spec Dependency specifications
*
* \ingroup g_paludis
*
* Dependency specification classes provide an abstraction representing
* dependency and dependency-like (for example, SRC_URI, RESTRICT)
* heirarchies.
*
* \section Examples
*
* - \ref example_dep_label.cc "example_dep_label.cc"
* - \ref example_dep_spec.cc "example_dep_spec.cc"
* - \ref example_dep_tag.cc "example_dep_tag.cc"
* - \ref example_dep_spec_flattener.cc "example_dep_spec_flattener.cc"
*/
/** \defgroup g_environment Environment
*
* \ingroup g_paludis
*
* An Environment subclass is the starting point for most programs. For programs
* that use user configuration, EnvironmentMaker is used to obtain an instance.
*
* \section Examples
*
* - \ref example_environment.cc "example_environment.cc"
* - \ref example_selection.cc "example_selection.cc"
*/
/** \defgroup g_selections Queries
*
* \ingroup g_environment
*
* Calling Environment::operator[] with a Selection parameter is the usual way
* of querying for PackageID instances with given properties.
*/
/** \defgroup g_exceptions Exceptions
*
* Exceptions and related utility classes.
*
* \ingroup g_paludis
*/
/** \defgroup g_formatters Formatters
*
* \ingroup g_metadata_key
*
* Formatters are used in various places (such as MetadataKey pretty_print methods)
* to apply user-defined formatting to parts of text generated for display. They
* allow clients to, for example, display accepted and unaccepted use flag names
* in different colours, without needing to rewrite the entire pretty printing
* system.
*
* \section Examples
*
* - \ref example_formatter.cc "example_formatter.cc"
* - \ref example_stringify_formatter.cc "example_stringify_formatter.cc"
*/
/** \defgroup g_package_id Package IDs
*
* \ingroup g_paludis
*
* A PackageID represents a particular package version in a Repository. It has
* various pieces of associated information, including a name, a version, an
* owning repository, a slot, a collection of metadata keys and a collection of
* masks.
*
* \section Examples
*
* - \ref example_package_id.cc "example_package_id.cc"
* - \ref example_action.cc "example_action.cc"
* - \ref example_mask.cc "example_mask.cc"
* - \ref example_metadata_key.cc "example_metadata_key.cc"
*/
/** \defgroup g_mask Masks
*
* \ingroup g_package_id
*
* A mask represents one reason why a PackageID is masked (not installable).
*
* \section Examples
*
* - \ref example_mask.cc "example_mask.cc"
*/
/** \defgroup g_metadata_key Metadata Keys
*
* \ingroup g_package_id
*
* A metadata key hold a piece of information about a PackageID.
*
* \section Examples
*
* - \ref example_metadata_key.cc "example_metadata_key.cc"
*/
/** \defgroup g_repository Repository
*
* \ingroup g_paludis
*
* A Repository subclass represents a repository that holds a collection of
* packages.
*
* \section Examples
*
* - \ref example_repository.cc "example_repository.cc"
*/
/** \defgroup g_names Names and Versions
*
* \ingroup g_paludis
*
* Paludis uses 'smart' classes for holding names and versions, allowing for
* substantially more static checking and much more convenient and useful
* runtime checking of data.
*
* \section Examples
*
* - \ref example_name.cc "example_name.cc"
* - \ref example_version_spec.cc "example_version_spec.cc"
* - \ref example_version_operator.cc "example_version_operator.cc"
*/
/** \defgroup g_dep_list Dependency Resolution
*
* \ingroup g_paludis
*
* There are two classes that provide dependency resolution: DepList (for
* installing) and UninstallList (for uninstalling). Actual installing and
* uninstalling is usually done by InstallTask and UninstallTask respectively.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_tasks Tasks
*
* \ingroup g_paludis
*
* Tasks simplify certain common operations. For example, when installing a
* group of packages, a client has to handle target and dependency resolution,
* fetching and uninstalling appropriate packages with error handling, and all
* the hooks that should be called. Rather than doing this by hand, a client
* will typically subclass InstallTask.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_hooks Hooks
*
* \ingroup g_paludis
*
* Hooks can be used to run additional commands at various well-defined trigger
* points.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_digests Digests
*
* \ingroup g_paludis
*
* Paludis includes some basic digest algorithms to avoid external dependencies.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_utils Utilities
*
* \ingroup g_paludis
*
* The utilities library contains various classes that are not core package
* management functionality.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_config_file Configuration Files
*
* \ingroup g_utils
*
* The various ConfigFile subclasses simplify handling configuration files in
* various common formats.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_strings Strings
*
* \ingroup g_utils
*
* We provide various functions and classes that simplify common string handling
* operations.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_fs Filesystem
*
* \ingroup g_utils
*
* We provide various functions and classes that simplify various common
* filesystem operations.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_data_structures Data Structures
*
* \ingroup g_utils
*
* Various data structures.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_iterator Iterators
*
* \ingroup g_utils
*
* Various iterator utilities.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_oo OO Design Helpers
*
* \ingroup g_utils
*
* Various OO utility classes.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_log Logging
*
* \ingroup g_utils
*
* Paludis includes a basic logging facility.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_system System
*
* \ingroup g_utils
*
* Various utilities for interacting with lower-level system things.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_visitors Visitors
*
* \ingroup g_utils
*
* Visitors are a way of providing subtype-polymorphic behaviour without
* modifying the visitable class.
*
* \section Examples
*
* - None at this time.
*/
/** \defgroup g_threads Threads
*
* \ingroup g_utils
*
* Paludis includes some basic thread classes.
*
* \section Examples
*
* - None at this time.
*/