@@ -430,18 +430,25 @@ template <typename M> class MessageQueue {
430
430
MessageQueue (send_callback, config, {}, databaseHandler) {
431
431
}
432
432
433
- void get_transaction_messages_from_db () {
433
+ void get_transaction_messages_from_db (bool ignore_security_event_notifications = false ) {
434
434
std::vector<ocpp::common::DBTransactionMessage> transaction_messages =
435
435
database_handler->get_transaction_messages ();
436
436
437
437
if (!transaction_messages.empty ()) {
438
438
for (auto & transaction_message : transaction_messages) {
439
- std::shared_ptr<ControlMessage<M>> message =
440
- std::make_shared<ControlMessage<M>>(transaction_message.json_message );
441
- message->messageType = string_to_messagetype (transaction_message.message_type );
442
- message->timestamp = transaction_message.timestamp ;
443
- message->message_attempts = transaction_message.message_attempts ;
444
- transaction_message_queue.push_back (message);
439
+
440
+ if (ignore_security_event_notifications &&
441
+ transaction_message.message_type == " SecurityEventNotification" ) {
442
+ // remove from database in case SecurityEventNotification.req should not be sent
443
+ this ->database_handler ->remove_transaction_message (transaction_message.unique_id );
444
+ } else {
445
+ std::shared_ptr<ControlMessage<M>> message =
446
+ std::make_shared<ControlMessage<M>>(transaction_message.json_message );
447
+ message->messageType = string_to_messagetype (transaction_message.message_type );
448
+ message->timestamp = transaction_message.timestamp ;
449
+ message->message_attempts = transaction_message.message_attempts ;
450
+ transaction_message_queue.push_back (message);
451
+ }
445
452
}
446
453
447
454
this ->new_message = true ;
0 commit comments