BDE 4.14.0 Production release
|
Modules | |
Package bsl+bslhdrs | |
Basic Standard Library BSL HeaDerS (bsl+bslhdrs) | |
Package bsla | |
Basic Standard Library Annotations (bsla) | |
Package bslalg | |
Basic Standard Library ALgorithms (bslalg) | |
Package bsldoc | |
Basic Standard Library DOCumentation (bsldoc) | |
Package bslfwd | |
Basic Standard Library System ForWarding Declarations (bslfwd) | |
Package bslh | |
Basic Standard Library Hashing (bslh) | |
Package bslim | |
Basic Standard Library Implementation Mechanisms (bslim) | |
Package bslma | |
Basic Standard Library Memory Allocators (bslma) | |
Package bslmf | |
Basic Standard Library Meta-Functions (bslmf) | |
Package bslmt | |
Basic Standard Library Multi-Threading (bslmt) | |
Package bsls | |
Basic Standard Library System utilities (bsls) | |
Package bslscm | |
Basic Standard Library Source Control Management (bslscm) | |
Package bslstl | |
Basic Standard Library STL (bslstl) | |
Package bslstp | |
Basic Standard Library STlPort types (bslstp) | |
Package bsltf | |
Basic Standard Library Test Facility (bsltf) | |
Package bslx | |
Basic Standard Library eXternalization (bslx) | |
Provide a comprehensive foundation for component-based development.
Basic Standard Library (bsl)
The 'bsl' ("Basic Standard Library") package group contains various packages that provide platform-specific classes, meta-functions, defensive programming mechanisms, a framework for component testing, memory allocation protocols and algorithms, and a C++ standard library implementation.
Note that the C++ standard library is implemented in the 'bsl' namespace instead of the standard 'std' namespace. This allow clients to use both the native compiler provided C++ standard library together with the Bloomberg provided C++ standard library in the same translation unit.
The 'bsl' package group is the foundation of the firm-wide BDE library and has no dependencies beyond the allowed OS and runtime environment dependencies.
The 'bsl' package group currently has 16 packages having 11 levels of physical dependency. The list below shows the hierarchical ordering of the packages. The order of packages within each level is not architecturally significant, just alphabetical.
Note that the 'bsl+stdhdrs' package is only a compatibility layer for Bloomberg managed code. It is not an essential package for the rest of the BDE libraries (i.e., all other package groups above 'bsl' will compile and function without 'bsl+stdhdrs'). This package implements the logic required for 'BDE-STL' mode.
Note that required source control package 'bslscm' depends on 'bsls'; this behavior is unique to 'bsl', although it is temporarily also in 'bde' for historic reasons, since logically every other package should depend on 'bslscm'.
'bsl+bslhdrs': Provide a compatibility layer to enable BDE-STL mode in Bloomberg.
'bsla': Provide macros for portable use of compiler annotations.
'bslalg': Provide algorithms and traits used by the BDE STL implementation.
'bsldoc': Provide documentation of terms and concepts used throughout BDE.
'bslfwd': !DEPRECATED! Provide compatibility for clients using single-level namespace
'bslh': Provide a framework for hashing types using swappable algorithms.
'bslim': Provide implementation mechanisms.
'bslma': Provide allocators, guards, and other memory-management tools.
'bslmf': Provide meta-function versions of useful coding constructs.
'bslmt': Support for multi-threading and thread-safe processes.
'bsls': Provide system-level utilities for 'bsl'.
'bslscm': Provide versioning information for BDE library components.
'bslstl': Provide replacement classes for STL constructs.
'bslstp': !DEPRECATED! Provide replacement classes (adopted from STLport) for STL.
'bsltf': Provide a set of utilities and types to help with testing.
'bslx': Define externalization protocols and provide implementations.
This section provides a brief introduction to the packages of the 'bsl' package group. Note that several packages, especially at lower levels in the physical hierarchy, are primarily intended for use by other packages within 'bsl'. See the respective Package Level documents for more details.
The {'bsl+bslhdrs'} package provides the 'bsl' version of the standard C++ library (e.g., 'bsl_vector.h' instead of 'vector', 'bsl_algorithm.h' instead of 'algorithm'). Users of 'bsl' can include these headers to obtain the corresponding C++ STL functionalities.
The {'bslalg'} package provides a variety of lower-level algorithms, comparisons, and traits.
The {'bsldoc'} package documents key terminology and concepts used throughout BDE documentation. Note that the components in this package consist entirely of comments, no code.
The {'bslh'} package provides standard hashing algorithms and components allowing the application of those hashing algorithms to types in a modular way.
The {'bslim'} package provides implementation mechanisms for features that must have identical syntax and semantics in many disparate classes.
{'bslma'} provides memory allocation and related proctor and handle objects.
The {'bslmf'} package provides low-level "meta-functions" implementing "traits" and other useful properties of types, determined at compile-time.
The {'bsls'} package provides the needed platform-independent definitions and utilities (with platform-specific implementations) so that the rest of the bsl library, and all conforming applications within the Development Framework, can be written in a truly portable, platform-neutral dialect of C++ – one having dependency on 'bsls', but on no other system-specific services. Among the issues dealt with in 'bsls' are hardware, operating system, and compiler definitions, "endian-ness" and alignment of type representation in physical memory, bit-manipulation utilities, and a uniform interface to system services (e.g., timers).
The {'bslscm'} package contains only two components, bslscm_version and bslscm_versiontag . The first of these components is included by every other component in 'bsl', and provides versioning information for the package group. Users may use the bslscm_version facilities to query a particular 'bsl' library for its version information. The second component defines macros that can be used for conditional-compilation based on 'bsl' version information.
The {'bslstl'} package provides implementations of certain containers of the C++ standard library using the 'bslma' memory allocation model, algorithms and traits in 'bslalg' and meta-functions in 'bslmf'.
The {'bsltf'} package provides a set test types and utilities that operates on those types, which can help simplify, particularly for template, the implementation of test drivers.
The {'bslx'} package defines (via documentation) the BDEX protocol for externalization (i.e., for an "out stream") and "unexternalization" (i.e., for an "in stream"), and provides concrete byte-array-based stream implementations of each kind of stream, including streams for testing.