summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-09-14 18:38:37 +0800
committerluwenpeng <[email protected]>2024-09-18 14:36:31 +0800
commit721d5d1466541cc54a991fc5359cd7013e10f936 (patch)
tree0c0ea2064c7540ad9c4b8d096b88751ed3861e60 /include
parentf559d67b93df78e9f6d5c3fe301b688b5c857d98 (diff)
feature(packet manager): support claim packt and add test case
Diffstat (limited to 'include')
-rw-r--r--include/stellar/log.h36
-rw-r--r--include/stellar/packet_manager.h8
2 files changed, 11 insertions, 33 deletions
diff --git a/include/stellar/log.h b/include/stellar/log.h
index 52cc174..a075267 100644
--- a/include/stellar/log.h
+++ b/include/stellar/log.h
@@ -16,61 +16,37 @@ enum log_level
};
#define STELLAR_LOG_TRACE(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("TRACE: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_TRACE)) \
+ if (log_check_level((logger), LOG_TRACE)) \
{ \
log_print((logger), LOG_TRACE, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_DEBUG(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("DEBUG: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_DEBUG)) \
+ if (log_check_level((logger), LOG_DEBUG)) \
{ \
log_print((logger), LOG_DEBUG, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_INFO(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("INFO: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_INFO)) \
+ if (log_check_level((logger), LOG_INFO)) \
{ \
log_print((logger), LOG_INFO, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_WARN(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("WARN: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_WARN)) \
+ if (log_check_level((logger), LOG_WARN)) \
{ \
log_print((logger), LOG_WARN, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_ERROR(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("ERROR: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_ERROR)) \
+ if (log_check_level((logger), LOG_ERROR)) \
{ \
log_print((logger), LOG_ERROR, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_FATAL(logger, module, format, ...) \
- if ((logger) == NULL) \
- { \
- printf("FATAL: (%s): " format "\n", module, ##__VA_ARGS__); \
- } \
- else if (log_check_level((logger), LOG_FATAL)) \
+ if (log_check_level((logger), LOG_FATAL)) \
{ \
log_print((logger), LOG_FATAL, (module), (format), ##__VA_ARGS__); \
}
diff --git a/include/stellar/packet_manager.h b/include/stellar/packet_manager.h
index 87e6aed..5d78ec3 100644
--- a/include/stellar/packet_manager.h
+++ b/include/stellar/packet_manager.h
@@ -27,9 +27,11 @@ struct packet_manager_runtime *packet_manager_get_runtime(struct packet_manager
typedef void on_packet_stage_callback(enum packet_stage stage, struct packet *pkt, void *args);
int packet_manager_schema_add_subscriber(struct packet_manager_schema *pkt_mgr_schema, enum packet_stage stage, on_packet_stage_callback cb, void *args);
-// take 只执行一次 ???
-// 同一 stage 后面的 msg 是否中断???不中断
-void packet_manager_runtime_take_packet(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt);
+// if two modules claim the same packet at the same stage, the second 'claim' fails.
+// return 0 on success
+// return -1 on failure
+typedef void on_packet_claimed_callback(struct packet *pkt, void *args);
+int packet_manager_runtime_claim_packet(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt, on_packet_claimed_callback cb, void *args);
void packet_manager_runtime_schedule_packet(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt, enum packet_stage stage);
#ifdef __cplusplus