+++ /dev/null
-/*
- * Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#define BT_LOG_OUTPUT_LEVEL bt_plugin_utils_trimmer_log_level
-#include "logging/log.h"
-
-BT_LOG_INIT_LOG_LEVEL(bt_plugin_utils_trimmer_log_level,
- "BABELTRACE_FLT_UTILS_TRIMMER_LOG_LEVEL");
+++ /dev/null
-#ifndef PLUGINS_UTILS_TRIMMER_LOGGING_H
-#define PLUGINS_UTILS_TRIMMER_LOGGING_H
-
-/*
- * Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#define BT_LOG_OUTPUT_LEVEL bt_plugin_utils_trimmer_log_level
-#include "logging/log.h"
-
-BT_LOG_LEVEL_EXTERN_SYMBOL(bt_plugin_utils_trimmer_log_level);
-
-#endif /* PLUGINS_UTILS_TRIMMER_LOGGING_H */
* SOFTWARE.
*/
+#define BT_LOG_OUTPUT_LEVEL (trimmer_comp->log_level)
#define BT_LOG_TAG "PLUGIN/FLT.UTILS.TRIMMER"
-#include "logging.h"
+#include "logging/log.h"
#include "compat/utc.h"
#include "compat/time.h"
struct trimmer_comp {
struct trimmer_bound begin, end;
bool is_gmt;
+ bt_logging_level log_level;
};
enum trimmer_iterator_state {
* TODO: Check overflows.
*/
static
-int set_bound_from_str(const char *str, struct trimmer_bound *bound,
- bool is_gmt)
+int set_bound_from_str(struct trimmer_comp *trimmer_comp,
+ const char *str, struct trimmer_bound *bound, bool is_gmt)
{
int ret = 0;
int s_ret;
* Returns a negative value if anything goes wrong.
*/
static
-int set_bound_from_param(const char *param_name, const bt_value *param,
+int set_bound_from_param(struct trimmer_comp *trimmer_comp,
+ const char *param_name, const bt_value *param,
struct trimmer_bound *bound, bool is_gmt)
{
int ret;
goto end;
}
- ret = set_bound_from_str(arg, bound, is_gmt);
+ ret = set_bound_from_str(trimmer_comp, arg, bound, is_gmt);
end:
return ret;
}
static
-int validate_trimmer_bounds(struct trimmer_bound *begin,
- struct trimmer_bound *end)
+int validate_trimmer_bounds(struct trimmer_comp *trimmer_comp,
+ struct trimmer_bound *begin, struct trimmer_bound *end)
{
int ret = 0;
value = bt_value_map_borrow_entry_value_const(params, "begin");
if (value) {
- if (set_bound_from_param("begin", value,
+ if (set_bound_from_param(trimmer_comp, "begin", value,
&trimmer_comp->begin, trimmer_comp->is_gmt)) {
/* set_bound_from_param() logs errors */
ret = BT_SELF_COMPONENT_STATUS_ERROR;
value = bt_value_map_borrow_entry_value_const(params, "end");
if (value) {
- if (set_bound_from_param("end", value,
+ if (set_bound_from_param(trimmer_comp, "end", value,
&trimmer_comp->end, trimmer_comp->is_gmt)) {
/* set_bound_from_param() logs errors */
ret = BT_SELF_COMPONENT_STATUS_ERROR;
end:
if (trimmer_comp->begin.is_set && trimmer_comp->end.is_set) {
/* validate_trimmer_bounds() logs errors */
- ret = validate_trimmer_bounds(&trimmer_comp->begin,
- &trimmer_comp->end);
+ ret = validate_trimmer_bounds(trimmer_comp,
+ &trimmer_comp->begin, &trimmer_comp->end);
}
return ret;
goto error;
}
+ trimmer_comp->log_level = bt_component_get_logging_level(
+ bt_self_component_as_component(
+ bt_self_component_filter_as_self_component(self_comp)));
status = bt_self_component_filter_add_input_port(
self_comp, in_port_name, NULL, NULL);
if (status != BT_SELF_COMPONENT_STATUS_OK) {
}
static inline
-int set_trimmer_iterator_bound(struct trimmer_bound *bound,
- int64_t ns_from_origin, bool is_gmt)
+int set_trimmer_iterator_bound(struct trimmer_iterator *trimmer_it,
+ struct trimmer_bound *bound, int64_t ns_from_origin,
+ bool is_gmt)
{
+ struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
struct tm tm;
time_t time_seconds = (time_t) (ns_from_origin / NS_PER_S);
int ret = 0;
found:
if (!trimmer_it->begin.is_set) {
BT_ASSERT(!trimmer_it->begin.is_infinite);
- ret = set_trimmer_iterator_bound(&trimmer_it->begin,
+ ret = set_trimmer_iterator_bound(trimmer_it, &trimmer_it->begin,
ns_from_origin, trimmer_comp->is_gmt);
if (ret) {
goto error;
if (!trimmer_it->end.is_set) {
BT_ASSERT(!trimmer_it->end.is_infinite);
- ret = set_trimmer_iterator_bound(&trimmer_it->end,
+ ret = set_trimmer_iterator_bound(trimmer_it, &trimmer_it->end,
ns_from_origin, trimmer_comp->is_gmt);
if (ret) {
goto error;
}
}
- ret = validate_trimmer_bounds(&trimmer_it->begin,
- &trimmer_it->end);
+ ret = validate_trimmer_bounds(trimmer_it->trimmer_comp,
+ &trimmer_it->begin, &trimmer_it->end);
if (ret) {
goto error;
}
bt_self_message_iterator_status state_seek_initially(
struct trimmer_iterator *trimmer_it)
{
+ struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
bt_self_message_iterator_status status =
BT_SELF_MESSAGE_ITERATOR_STATUS_OK;
bool skip;
int ret;
struct trimmer_iterator_stream_state *sstate = NULL;
+ struct trimmer_comp *trimmer_comp = trimmer_it->trimmer_comp;
/* Find message's associated stream */
switch (bt_message_get_type(msg)) {