BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlat.h
Go to the documentation of this file.
1/// @file bdlat.h
2///
3///
4/// @defgroup bdlat Package bdlat
5/// @brief Basic Development Library Attribute Types (bdlat)
6/// @addtogroup bdl
7/// @{
8/// @addtogroup bdlat
9/// [bdlat]: group__bdlat.html
10/// @{
11///
12/// # Purpose {#bdlat-purpose}
13/// Provide generic functions to manipulate attribute types
14///
15/// # Mnemonic {#bdlat-mnemonic}
16/// Basic Development Library Attribute Types (bdlat)
17///
18/// # Description {#bdlat-description}
19/// The 'bdlat' package provides generic functions to work with the
20/// different concepts of attribute types. These concepts group common behaviors
21/// ("array", "choice", "enumeration", "nullable", "sequence", or "value type").
22/// Once a type is made a model of one of these concepts, it can be used
23/// seamlessly by generic code such as the xml/ber encoders and decoders.
24/// Therefore, whenever a new type needs to be encodable, the codecs themselves do
25/// not need to be modified, but the type just needs to implement the necessary
26/// functions to expose the concept.
27///
28/// ## Hierarchical Synopsis
29///
30/// The 'bdlat' package currently has 20 components having 6 levels of physical
31/// dependency. The list below shows the hierarchical ordering of the components.
32/// The order of components within each level is not architecturally significant,
33/// just alphabetical.
34/// @code
35/// 6. bdlat_arrayiterators
36/// bdlat_symbolicconverter
37///
38/// 5. bdlat_arrayutil
39/// bdlat_nullablevalueutil
40/// bdlat_valuetypefunctions
41///
42/// 4. bdlat_enumutil
43/// bdlat_typecategory
44///
45/// 3. bdlat_arrayfunctions
46/// bdlat_choicefunctions
47/// bdlat_customizedtypefunctions
48/// bdlat_enumfunctions
49/// bdlat_sequencefunctions
50/// bdlat_typename
51///
52/// 2. bdlat_attributeinfo
53/// bdlat_enumeratorinfo
54/// bdlat_formattingmode
55/// bdlat_nullablevaluefunctions
56/// bdlat_selectioninfo
57/// bdlat_typetraits
58///
59/// 1. bdlat_bdeatoverrides
60/// @endcode
61///
62/// ## Component Synopsis
63///
64/// @ref bdlat_arrayfunctions :
65/// Provide a namespace defining "array" functions.
66///
67/// @ref bdlat_arrayiterators :
68/// Provide iterator support for bdlat_ArrayFunction-conformant types.
69///
70/// @ref bdlat_arrayutil :
71/// Provide utilities for operating on `bdlat` "array" types.
72///
73/// @ref bdlat_attributeinfo :
74/// Provide a container for attribute information.
75///
76/// @ref bdlat_bdeatoverrides :
77/// Provide macros to map `bdeat` names to `bdlat` names.
78///
79/// @ref bdlat_choicefunctions :
80/// Provide a namespace defining choice functions.
81///
82/// @ref bdlat_customizedtypefunctions :
83/// Provide a namespace defining customized type functions.
84///
85/// @ref bdlat_enumeratorinfo :
86/// Provide a container for enumerator information.
87///
88/// @ref bdlat_enumfunctions :
89/// Provide a namespace defining enumeration functions.
90///
91/// @ref bdlat_enumutil :
92/// Provide functions for decoding enumerations with fallback values.
93///
94/// @ref bdlat_formattingmode :
95/// Provide formatting mode constants.
96///
97/// @ref bdlat_nullablevaluefunctions :
98/// Provide a namespace defining nullable value functions.
99///
100/// @ref bdlat_nullablevalueutil :
101/// Provide utilities for operating on `bdlat` "nullable value" types.
102///
103/// @ref bdlat_selectioninfo :
104/// Provide a container for selection information.
105///
106/// @ref bdlat_sequencefunctions :
107/// Provide a namespace defining sequence functions.
108///
109/// @ref bdlat_symbolicconverter :
110/// Provide a utility for convert types with matching member symbols.
111///
112/// @ref bdlat_typecategory :
113/// Provide type category tags and a tag selection meta-function.
114///
115/// @ref bdlat_typename :
116/// Provide string representations for data type names.
117///
118/// @ref bdlat_typetraits :
119/// Provide compile-time traits for generated types.
120///
121/// @ref bdlat_valuetypefunctions :
122/// Provide a namespace for "value type" functions.
123///
124/// @}
125/** @} */