Commit | Line | Data |
---|---|---|
bf403eb2 PP |
1 | #ifndef BABELTRACE2_GRAPH_PRIVATE_QUERY_EXECUTOR_H |
2 | #define BABELTRACE2_GRAPH_PRIVATE_QUERY_EXECUTOR_H | |
3 | ||
4 | /* | |
5 | * Copyright (c) 2010-2019 EfficiOS Inc. and Linux Foundation | |
6 | * | |
7 | * Permission is hereby granted, free of charge, to any person obtaining a copy | |
8 | * of this software and associated documentation files (the "Software"), to deal | |
9 | * in the Software without restriction, including without limitation the rights | |
10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
11 | * copies of the Software, and to permit persons to whom the Software is | |
12 | * furnished to do so, subject to the following conditions: | |
13 | * | |
14 | * The above copyright notice and this permission notice shall be included in | |
15 | * all copies or substantial portions of the Software. | |
16 | * | |
17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
23 | * SOFTWARE. | |
24 | */ | |
25 | ||
26 | #ifndef __BT_IN_BABELTRACE_H | |
27 | # error "Please include <babeltrace2/babeltrace.h> instead." | |
28 | #endif | |
29 | ||
30 | #include <babeltrace2/types.h> | |
31 | ||
32 | #ifdef __cplusplus | |
33 | extern "C" { | |
34 | #endif | |
35 | ||
7704a0af PP |
36 | /*! |
37 | @defgroup api-priv-qexec Private query executor | |
38 | @ingroup api-comp-cls-dev | |
39 | ||
40 | @brief | |
41 | Private view of a \bt_qexec for a \bt_comp_cls | |
42 | \ref api-comp-cls-dev-meth-query "query method". | |
43 | ||
44 | A <strong><em>private query executor</em></strong> is a private view, | |
45 | from within a \bt_comp_cls | |
46 | \ref api-comp-cls-dev-meth-query "query method", of a | |
47 | \bt_qexec. | |
48 | ||
49 | A query method receives a private query executor as its | |
50 | \bt_p{query_executor} parameter. | |
51 | ||
52 | As of \bt_name_version_min_maj, this module only offers the | |
53 | bt_private_query_executor_as_query_executor_const() function to | |
54 | \ref api-fund-c-typing "upcast" a private query executor to a | |
55 | \c const query executor. You need this to get the query executor's | |
56 | \ref api-qexec-prop-log-lvl "logging level". | |
57 | */ | |
58 | ||
59 | /*! @{ */ | |
60 | ||
61 | /*! | |
62 | @name Type | |
63 | @{ | |
64 | ||
65 | @typedef struct bt_private_query_executor bt_private_query_executor; | |
66 | ||
67 | @brief | |
68 | Private query executor. | |
69 | ||
70 | @} | |
71 | */ | |
72 | ||
73 | /*! | |
74 | @name Upcast | |
75 | @{ | |
76 | */ | |
77 | ||
78 | /*! | |
79 | @brief | |
80 | \ref api-fund-c-typing "Upcasts" the private query executor | |
81 | \bt_p{query_executor} to the public #bt_query_executor type. | |
82 | ||
83 | @param[in] query_executor | |
84 | @parblock | |
85 | Private query executor to upcast. | |
86 | ||
87 | Can be \c NULL. | |
88 | @endparblock | |
89 | ||
90 | @returns | |
91 | \bt_p{query_executor} as a public query executor. | |
92 | */ | |
bf403eb2 PP |
93 | static inline |
94 | const bt_query_executor * | |
95 | bt_private_query_executor_as_query_executor_const( | |
96 | bt_private_query_executor *query_executor) | |
97 | { | |
98 | return __BT_UPCAST_CONST(bt_query_executor, query_executor); | |
99 | } | |
100 | ||
7704a0af PP |
101 | /*! @} */ |
102 | ||
103 | /*! @} */ | |
104 | ||
bf403eb2 PP |
105 | #ifdef __cplusplus |
106 | } | |
107 | #endif | |
108 | ||
109 | #endif /* BABELTRACE2_GRAPH_PRIVATE_QUERY_EXECUTOR_H */ |