1    | #ifndef TA_H
2    | #define TA_H
3    | 
4    | #include <glib.h>
5    | #include <pthread.h>
6    | #include <stdio.h>
7    | 
8    | #include "stubs.h"
9    | #include "memwrap.h"
10   | #include "sk.h"
11   | #include "timediff.h"
12   | 
13   | /* thread activity monitor */
14   | #define TA_TYPE_LEN 16
15   | #define TA_ACT_LEN 256
16   | #define TA_PRINT_LEN (TA_ACT_LEN+64)
17   | 
18   | typedef struct 
19   | {  
20   |   pthread_t  thread_id;                /* thread id */  
21   |   ut_timer_t sessionstart;             /* time the session started */
22   |   ut_timer_t taskstart;                /* time the last task started */
23   |   int        sock;                     /* socket */
24   |   sk_conn_st *condat;                  /* sk's connection data struct */
25   |   char       type[TA_TYPE_LEN];
26   |   char       activity[TA_ACT_LEN];     /* current activity (eg query) */
27   |   int        tasks;                   /* number of activities(used to calculate the average) */
28   | } ta_str_t;
29   | 
30   | 
31   | #ifdef TA_IMPL
32   | /* GLOBALs (private to the module)*/
33   | GList *ta_list = NULL;
34   | pthread_mutex_t ta_mutex = PTHREAD_MUTEX_INITIALIZER;
35   | #endif
36   | 
37   | #ifdef __cplusplus
38   | extern "C" {
39   | #endif
40   | 
41   | 
42   | /* prototypes */
43   | void TA_add(int  sock, char *type);
44   | void TA_delete(void); 
45   | void TA_setactivity(char *activity);
46   | void TA_setcondat(sk_conn_st *condat);
47   | char * TA_tostring(void);
48   | void TA_increment(void);
49   | void TA_trigger(char *type, int sock, pthread_t thread_id);
50   | void TA_reset_counters(pthread_t thread_id);
51   | 
52   | #ifdef __cplusplus
53   | }
54   | #endif
55   | 
56   | 
57   | #endif
58   |