Renaming configuration to application
[apps/low-level-can-service.git] / CAN-binder / low-can-binding / binding / low-can-cb.cpp
index 9aa2340..8141c3d 100644 (file)
@@ -27,7 +27,7 @@
 #include <systemd/sd-event.h>
 
 #include "openxc.pb.h"
-#include "configuration.hpp"
+#include "application.hpp"
 #include "../can/can-bus.hpp"
 #include "../can/can-signals.hpp"
 #include "../can/can-message.hpp"
@@ -50,9 +50,11 @@ void on_no_clients(std::string message)
                if( adr != nullptr)
                        configuration_t::instance().get_diagnostic_manager().cleanup_request(adr, true);
        }
+       delete diag_req;
+       diag_req = nullptr;
 }
 
-static void push_n_notify(const can_message_t cm)
+static void push_n_notify(const can_message_t& cm)
 {
        can_bus_t& cbm = configuration_t::instance().get_can_bus_manager();
        std::lock_guard<std::mutex> can_message_lock(cbm.get_can_message_mutex());
@@ -181,14 +183,15 @@ static int subscribe_unsubscribe_signal(struct afb_req request, bool subscribe,
 ///
 static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, const struct utils::signals_found& signals)
 {
-       int ret,  rets = 0;
+       int rets = 0;
 
        //TODO: Implement way to dynamically call the right function no matter
        // how much signals types we have.
-       configuration_t& conf = configuration_t::instance();
+       application_t& conf = application_t::instance();
 
        for(const auto& sig : signals.diagnostic_messages)
        {
+               int ret = 0;
                diagnostic_manager_t& diag_m = conf.get_diagnostic_manager();
                DiagnosticRequest* diag_req = conf.get_request_from_diagnostic_message(sig->get_name());
 
@@ -206,6 +209,8 @@ static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe,
                        diag_m.cleanup_request(
                                diag_m.find_recurring_request(diag_req), true);
                        WARNING(binder_interface, "%s: signal: %s isn't supported. Canceling operation.", __FUNCTION__, sig->get_name().c_str());
+                       delete diag_req;
+                       diag_req = nullptr;
                        return -1;
                }
 
@@ -295,6 +300,8 @@ static const std::map<std::string, struct event_filter_t> parse_args_from_reques
        args = afb_req_json(request);
        if (args == NULL || !json_object_object_get_ex(args, "event", &event))
        {
+               event = json_object_new_string("*");
+               parse_filter(event, &event_filter);
                ret["*"] = event_filter;
        }
        else if (json_object_get_type(event) != json_type_array)