sp_log.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef SP_LOG_H
  2. #define SP_LOG_H
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "refcnt.h"
  8. /* logging */
  9. typedef struct sp_log_client_t sp_log_client_t;
  10. typedef struct sp_log_listener_t sp_log_listener_t;
  11. typedef struct sp_log_listener_mgr_t sp_log_listener_mgr_t;
  12. typedef struct sp_log_daemon_t sp_log_daemon_t;
  13. typedef void (*sp_log_on_log)(void *inst,
  14. int nsub,
  15. unsigned __int64 *sub,
  16. int client_id,
  17. int log_epid,
  18. int client_instance_id,
  19. unsigned __int64 log_id,
  20. unsigned __int64 prev_rsn,
  21. unsigned __int64 curr_rsn,
  22. int original_rsn_type,
  23. int rsn_depth,
  24. unsigned int log_time,
  25. int log_type,
  26. int log_severity,
  27. int log_sys_error,
  28. int log_usr_error,
  29. int param_cnt,
  30. int *params,
  31. const char *msg,
  32. void *user_data);
  33. typedef void (*sp_log_on_flush)(void *inst, int client_id, LPSYSTEMTIME lst, void *user_data);
  34. typedef void (*sp_log_on_timeout_interval)(void *inst, LPSYSTEMTIME lst, void *user_data);
  35. typedef struct sp_iom_t sp_iom_t;
  36. typedef struct sp_svc_t sp_svc_t;
  37. // client
  38. int sp_log_client_create(sp_svc_t *svc, sp_iom_t *iom, sp_log_client_t **p_client);
  39. int sp_log_client_destroy(sp_log_client_t *client);
  40. int sp_log_client_log(sp_log_client_t *client,
  41. int log_type,
  42. int log_severity,
  43. int log_sys_error,
  44. int log_usr_error,
  45. int param_cnt,
  46. int *params,
  47. const char *format, ...);
  48. int sp_log_client_logv(sp_log_client_t *client,
  49. int log_type,
  50. int log_severity,
  51. int log_sys_error,
  52. int log_usr_error,
  53. int param_cnt,
  54. int *params,
  55. const char *format,
  56. va_list arg);
  57. int sp_log_client_flush(sp_log_client_t *client);
  58. // listener
  59. int sp_log_listener_mgr_create(sp_svc_t *svc, sp_log_on_log on_log, sp_log_listener_mgr_t **p_mgr);
  60. int sp_log_listener_mgr_start(sp_log_listener_mgr_t *mgr);
  61. int sp_log_listener_mgr_stop(sp_log_listener_mgr_t *mgr);
  62. int sp_log_listener_mgr_subscribe(sp_log_listener_mgr_t *mgr, unsigned int *listen_id, void *key, int ignore_msg_body, int log_type, int ent_id, int severity_filter, int sys_code, int user_code);
  63. int sp_log_listener_mgr_unsubscribe(sp_log_listener_mgr_t *mgr, unsigned int listen_id);
  64. DECLARE_REF_COUNT(sp_log_listener_mgr, sp_log_listener_mgr_t)
  65. // daemon
  66. SPBASE_API int sp_log_daemon_create(sp_log_on_log on_log,
  67. sp_log_on_flush on_flush,
  68. sp_log_on_timeout_interval on_timeout_interval,
  69. void *user_data,
  70. sp_svc_t *svc,
  71. sp_log_daemon_t **p_daemon);
  72. SPBASE_API int sp_log_daemon_destroy(sp_log_daemon_t *daemon);
  73. #ifdef __cplusplus
  74. } // extern "C" {
  75. #endif
  76. #endif // SP_LOG_H