lib: internal: replace BT_ASSERT_PRE* -> BT_ASSERT_POST* where applicable
[babeltrace.git] / src / lib / graph / component.c
index 5b202d7364c71c37b32e252e6619b589379ede79..90129b073d46429f8f3a2f6d337f10b61a686fe5 100644 (file)
  * SOFTWARE.
  */
 
-#define BT_LOG_TAG "COMP"
-#include "lib/lib-logging.h"
+#define BT_LOG_TAG "LIB/COMPONENT"
+#include "lib/logging.h"
 
+#include "common/common.h"
 #include "common/assert.h"
 #include "lib/assert-pre.h"
+#include "lib/assert-post.h"
 #include <babeltrace2/graph/self-component.h>
 #include <babeltrace2/graph/component-const.h>
 #include <babeltrace2/graph/component-source-const.h>
@@ -100,7 +102,7 @@ void finalize_component(struct bt_component *comp)
        }
 
        if (method) {
-               BT_LIB_LOGD("Calling user's finalization method: "
+               BT_LIB_LOGI("Calling user's component finalization method: "
                        "%![comp-]+c", comp);
                method(comp);
        }
@@ -128,7 +130,7 @@ void destroy_component(struct bt_object *obj)
         */
        obj->ref_count++;
        component = container_of(obj, struct bt_component, base);
-       BT_LIB_LOGD("Destroying component: %![comp-]+c, %![graph-]+g",
+       BT_LIB_LOGI("Destroying component: %![comp-]+c, %![graph-]+g",
                component, bt_component_borrow_graph(component));
 
        /* Call destroy listeners in reverse registration order */
@@ -214,7 +216,7 @@ enum bt_self_component_status add_port(
 
        // TODO: Validate that the name is not already used.
 
-       BT_LIB_LOGD("Adding port to component: %![comp-]+c, "
+       BT_LIB_LOGI("Adding port to component: %![comp-]+c, "
                "port-type=%s, port-name=\"%s\"", component,
                bt_port_type_string(port_type), name);
 
@@ -248,7 +250,7 @@ enum bt_self_component_status add_port(
                }
        }
 
-       BT_LIB_LOGD("Created and added port to component: "
+       BT_LIB_LOGI("Created and added port to component: "
                "%![comp-]+c, %![port-]+p", component, new_port);
 
        *port = new_port;
@@ -282,7 +284,8 @@ uint64_t bt_component_get_output_port_count(const struct bt_component *comp)
 
 BT_HIDDEN
 int bt_component_create(struct bt_component_class *component_class,
-               const char *name, struct bt_component **user_component)
+               const char *name, bt_logging_level log_level,
+               struct bt_component **user_component)
 {
        int ret = 0;
        struct bt_component *component = NULL;
@@ -292,8 +295,9 @@ int bt_component_create(struct bt_component_class *component_class,
        BT_ASSERT(component_class);
        BT_ASSERT(name);
        type = bt_component_class_get_type(component_class);
-       BT_LIB_LOGD("Creating empty component from component class: %![cc-]+C, "
-               "comp-name=\"%s\"", component_class, name);
+       BT_LIB_LOGI("Creating empty component from component class: %![cc-]+C, "
+               "comp-name=\"%s\", log-level=%s", component_class, name,
+               bt_common_logging_level_string(log_level));
        component = component_create_funcs[type](component_class);
        if (!component) {
                BT_LOGE_STR("Cannot create specific component object.");
@@ -312,6 +316,7 @@ int bt_component_create(struct bt_component_class *component_class,
                goto end;
        }
 
+       component->log_level = log_level;
        component->input_ports = g_ptr_array_new_with_free_func(
                (GDestroyNotify) bt_object_try_spec_release);
        if (!component->input_ports) {
@@ -336,7 +341,7 @@ int bt_component_create(struct bt_component_class *component_class,
                goto end;
        }
 
-       BT_LIB_LOGD("Created empty component from component class: "
+       BT_LIB_LOGI("Created empty component from component class: "
                "%![cc-]+C, %![comp-]+c", component_class, component);
        BT_OBJECT_MOVE_REF(*user_component, component);
 
@@ -373,7 +378,7 @@ void bt_self_component_set_data(struct bt_self_component *self_comp,
 
        BT_ASSERT_PRE_NON_NULL(component, "Component");
        component->user_data = data;
-       BT_LIB_LOGV("Set component's user data: %!+c", component);
+       BT_LIB_LOGD("Set component's user data: %!+c", component);
 }
 
 BT_HIDDEN
@@ -475,83 +480,6 @@ enum bt_self_component_status bt_component_add_output_port(
                BT_PORT_TYPE_OUTPUT, name, user_data, port);
 }
 
-BT_HIDDEN
-enum bt_self_component_status bt_component_accept_port_connection(
-               struct bt_component *comp, struct bt_port *self_port,
-               struct bt_port *other_port)
-{
-       typedef enum bt_self_component_status (*method_t)(
-               void *, void *, const void *);
-
-       enum bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK;
-       method_t method = NULL;
-
-       BT_ASSERT(comp);
-       BT_ASSERT(self_port);
-       BT_ASSERT(other_port);
-
-       switch (comp->class->type) {
-       case BT_COMPONENT_CLASS_TYPE_SOURCE:
-       {
-               struct bt_component_class_source *src_cc = (void *) comp->class;
-
-               switch (self_port->type) {
-               case BT_PORT_TYPE_OUTPUT:
-                       method = (method_t) src_cc->methods.accept_output_port_connection;
-                       break;
-               default:
-                       abort();
-               }
-
-               break;
-       }
-       case BT_COMPONENT_CLASS_TYPE_FILTER:
-       {
-               struct bt_component_class_filter *flt_cc = (void *) comp->class;
-
-               switch (self_port->type) {
-               case BT_PORT_TYPE_INPUT:
-                       method = (method_t) flt_cc->methods.accept_input_port_connection;
-                       break;
-               case BT_PORT_TYPE_OUTPUT:
-                       method = (method_t) flt_cc->methods.accept_output_port_connection;
-                       break;
-               default:
-                       abort();
-               }
-
-               break;
-       }
-       case BT_COMPONENT_CLASS_TYPE_SINK:
-       {
-               struct bt_component_class_sink *sink_cc = (void *) comp->class;
-
-               switch (self_port->type) {
-               case BT_PORT_TYPE_INPUT:
-                       method = (method_t) sink_cc->methods.accept_input_port_connection;
-                       break;
-               default:
-                       abort();
-               }
-
-               break;
-       }
-       default:
-               abort();
-       }
-
-       if (method) {
-               BT_LIB_LOGD("Calling user's \"accept port connection\" method: "
-                       "%![comp-]+c, %![self-port-]+p, %![other-port-]+p",
-                       comp, self_port, other_port);
-               status = method(comp, self_port, (void *) other_port);
-               BT_LOGD("User method returned: status=%s",
-                       bt_self_component_status_string(status));
-       }
-
-       return status;
-}
-
 BT_HIDDEN
 enum bt_self_component_status bt_component_port_connected(
                struct bt_component *comp, struct bt_port *self_port,
@@ -624,7 +552,7 @@ enum bt_self_component_status bt_component_port_connected(
                status = method(comp, self_port, (void *) other_port);
                BT_LOGD("User method returned: status=%s",
                        bt_self_component_status_string(status));
-               BT_ASSERT_PRE(status == BT_SELF_COMPONENT_STATUS_OK ||
+               BT_ASSERT_POST(status == BT_SELF_COMPONENT_STATUS_OK ||
                        status == BT_SELF_COMPONENT_STATUS_ERROR ||
                        status == BT_SELF_COMPONENT_STATUS_NOMEM,
                        "Unexpected returned component status: status=%s",
@@ -645,7 +573,7 @@ void bt_component_add_destroy_listener(struct bt_component *component,
        listener.func = func;
        listener.data = data;
        g_array_append_val(component->destroy_listeners, listener);
-       BT_LIB_LOGV("Added destroy listener: %![comp-]+c, "
+       BT_LIB_LOGD("Added destroy listener: %![comp-]+c, "
                "func-addr=%p, data-addr=%p",
                component, func, data);
 }
@@ -667,13 +595,20 @@ void bt_component_remove_destroy_listener(struct bt_component *component,
                if (listener->func == func && listener->data == data) {
                        g_array_remove_index(component->destroy_listeners, i);
                        i--;
-                       BT_LIB_LOGV("Removed destroy listener: %![comp-]+c, "
+                       BT_LIB_LOGD("Removed destroy listener: %![comp-]+c, "
                                "func-addr=%p, data-addr=%p",
                                component, func, data);
                }
        }
 }
 
+bt_logging_level bt_component_get_logging_level(
+               const struct bt_component *component)
+{
+       BT_ASSERT_PRE_NON_NULL(component, "Component");
+       return component->log_level;
+}
+
 void bt_component_get_ref(const struct bt_component *component)
 {
        bt_object_get_ref(component);
This page took 0.028066 seconds and 4 git commands to generate.