aboutsummaryrefslogtreecommitdiff
path: root/doc/api/cplusplus/groups.doxygen
blob: 8cc58c6a5c7c8dec6795f7cdc409e981989d95ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
/* 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.
 * For programs that operate without configuration, NoConfigEnvironment should
 * be used instead.
 *
 * \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_package_database Package Database
 *
 * \ingroup g_paludis
 *
 * A PackageDatabase, which is owned by an Environment, contains a number of
 * Repository instances.
 *
 * \section Examples
 *
 * - \ref example_package_database.cc "example_package_database.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.
 */