Skip to content

Commit 697dbe9

Browse files
Add transaction callback to service
1 parent f28b29a commit 697dbe9

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

libxbot-service/include/xbot-service/Service.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,16 @@ class Service : public ServiceIo {
8888
*/
8989
virtual const char *GetName() = 0;
9090

91+
/**
92+
* Called whenever a new transaction starts
93+
*/
94+
virtual void OnTransactionStart(uint64_t timestamp) {}
95+
96+
/**
97+
* Called whenever a transaction was finished
98+
*/
99+
virtual void OnTransactionEnd() {}
100+
91101
const bool &IsRunning() {
92102
return is_running_;
93103
}

libxbot-service/src/Service.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ void xbot::service::Service::HandleDataMessage(xbot::datatypes::XbotHeader *head
310310
void xbot::service::Service::HandleDataTransaction(xbot::datatypes::XbotHeader *header, const void *payload,
311311
size_t payload_len) {
312312
(void)header;
313+
OnTransactionStart(header->timestamp);
313314
const auto payload_buffer = static_cast<const uint8_t *>(payload);
314315
// Go through all data packets in the transaction
315316
size_t processed_len = 0;
@@ -331,6 +332,7 @@ void xbot::service::Service::HandleDataTransaction(xbot::datatypes::XbotHeader *
331332
if (processed_len != payload_len) {
332333
ULOG_ARG_ERROR(&service_id_, "Transaction size mismatch");
333334
}
335+
OnTransactionEnd();
334336
}
335337

336338
void xbot::service::Service::loadConfigurationDefaults() {

0 commit comments

Comments
 (0)