Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
directorypath.cpp
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
5
6/*!
7 * \class DirectoryPath
8 *
9 * \brief Represents a path to a directory that was known to exist on the
10 * filesystem.
11 *
12 * An instance of this type guarantees that, at the time of creation
13 * of the instance, the contained path represented an existing,
14 * readable, executable directory.
15 *
16 * The type is intended to be used whenever a user-provided path to a
17 * directory is encountered the first time, validating that it can be
18 * used later on for the duration of a QDoc execution and
19 * canonicalizing the original path.
20 *
21 * Such a usage example could be during the configuration process,
22 * when encountering the paths that defines where QDoc should search
23 * for images or other files.
24 *
25 * Similarly, it is intended to be used at the API boundaries,
26 * internally, to relieve the called element of the requirement to
27 * check the validity of a path when a directory is required and to
28 * ensure that a single format of the path is encountered.
29 *
30 * Do note that the guarantees provided by this type do not
31 * necessarily hold after the time of creation of an instance.
32 * Indeed, the underlying filesystem may have changed.
33 *
34 * It is possible to renew the contract by obtaining a new instance:
35 *
36 * \code
37 * DirectoryPath old...
38 *
39 * ...
40 *
41 * auto current{DirectoryPath:refine(old.value())};
42 * \endcode
43 *
44 * QDoc itself will not generally perform destructive operations on
45 * its input files during an execution and, as such, it is never
46 * required to renew a contract. Ensuring that the underlying input
47 * files are indeed immutable is out-of-scope for QDoc and it is
48 * allowed to consider a case where the contract was invalidated as
49 * undefined behavior.
50 */
51
52/*!
53 * \include boundaries/refined_typedef_members.qdocinc {wrapped_type_documentation} {DirectoryPath}
54 */
55
56/*!
57 * \include boundaries/refined_typedef_members.qdocinc {has_equality_operator_documentation} {DirectoryPath}
58 */
59
60/*!
61 * \include boundaries/refined_typedef_members.qdocinc {has_less_than_operator_documentation} {DirectoryPath}
62 */
63
64/*!
65 * \include boundaries/refined_typedef_members.qdocinc {has_strictly_less_than_operator_documentation} {DirectoryPath}
66 */
67
68/*!
69 * \include boundaries/refined_typedef_members.qdocinc {has_greater_than_operator_documentation} {DirectoryPath}
70 */
71
72/*!
73 * \include boundaries/refined_typedef_members.qdocinc {has_strictly_greater_than_operator_documentation} {DirectoryPath}
74 */
75
76/*!
77 * \include boundaries/refined_typedef_members.qdocinc {refine_documentation} {DirectoryPath}
78 */
79
80/*!
81 * \include boundaries/refined_typedef_members.qdocinc {value_documentation} {DirectoryPath}
82 */
83
84/*!
85 * \include boundaries/refined_typedef_members.qdocinc {copy_constructor_documentation} {DirectoryPath}
86 */
87
88/*!
89 * \include boundaries/refined_typedef_members.qdocinc {copy_assignment_documentation} {DirectoryPath}
90 */
91
92/*!
93 * \include boundaries/refined_typedef_members.qdocinc {move_constructor_documentation} {DirectoryPath}
94 */
95
96/*!
97 * \include boundaries/refined_typedef_members.qdocinc {move_assignment_documentation} {DirectoryPath}
98 */
99
100/*!
101 * \include boundaries/refined_typedef_members.qdocinc {conversion_documentation} {DirectoryPath}
102 */
103
104/*!
105 * \include boundaries/refined_typedef_members.qdocinc {operator_equal_documentation} {DirectoryPath}
106 */
107
108/*!
109 * \include boundaries/refined_typedef_members.qdocinc {operator_unequal_documentation} {DirectoryPath}
110 */
111
112/*!
113 * \include boundaries/refined_typedef_members.qdocinc {operator_less_than_documentation} {DirectoryPath}
114 */
115
116/*!
117 * \include boundaries/refined_typedef_members.qdocinc {operator_less_than_or_equal_documentation} {DirectoryPath}
118 */
119
120/*!
121 * \include boundaries/refined_typedef_members.qdocinc {operator_greater_than_documentation} {DirectoryPath}
122 */
123
124/*!
125 * \include boundaries/refined_typedef_members.qdocinc {operator_greater_than_or_equal_documentation} {DirectoryPath}
126 */