Source File ta/ta.h

    1    | /******************
    2    |   Copyright (c) 2002                                        RIPE NCC
    3    |
    4    |   All Rights Reserved
    5    |
    6    |   Permission to use, copy, modify, and distribute this software and its
    7    |   documentation for any purpose and without fee is hereby granted,
    8    |   provided that the above copyright notice appear in all copies and that
    9    |   both that copyright notice and this permission notice appear in
    10   |   supporting documentation, and that the name of the author not be
    11   |   used in advertising or publicity pertaining to distribution of the
    12   |   software without specific, written prior permission.
    13   |
    14   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    15   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
    16   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
    17   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
    18   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    19   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    20   |   ***************************************/
    21   |
    22   | #ifndef TA_H
    23   | #define TA_H
    24   |
    25   | #include <glib.h>
    26   | #include <pthread.h>
    27   | #include <stdio.h>
    28   |
    29   | #include "stubs.h"
    30   | #include "memwrap.h"
    31   | #include "sk.h"
    32   | #include "timediff.h"
    33   |
    34   | /* thread activity monitor */
    35   | #define TA_TYPE_LEN 16
    36   | #define TA_ACT_LEN 256
    37   | #define TA_PRINT_LEN (TA_ACT_LEN+64)
    38   |
    39   | typedef struct
    40   | {
    41   |   pthread_t  thread_id;                /* thread id */
    42   |   ut_timer_t sessionstart;             /* time the session started */
    43   |   ut_timer_t taskstart;                /* time the last task started */
    44   |   int        sock;                     /* socket */
    45   |   sk_conn_st *condat;                  /* sk's connection data struct */
    46   |   char       type[TA_TYPE_LEN];
    47   |   char       activity[TA_ACT_LEN];     /* current activity (eg query) */
    48   |   int        tasks;                   /* number of activities(used to calculate the average) */
    49   | } ta_str_t;
    50   |
    51   |
    52   | #ifdef TA_IMPL
    53   | /* GLOBALs (private to the module)*/
    54   | GList *ta_list = NULL;
    55   | pthread_mutex_t ta_mutex = PTHREAD_MUTEX_INITIALIZER;
    56   | #endif
    57   |
    58   | #ifdef __cplusplus
    59   | extern "C" {
    60   | #endif
    61   |
    62   |
    63   | /* prototypes */
    64   | void TA_add(int  sock, char *type);
    65   | void TA_delete(void);
    66   | void TA_setactivity(char *activity);
    67   | void TA_setcondat(sk_conn_st *condat);
    68   | char * TA_tostring(void);
    69   | void TA_increment(void);
    70   | void TA_trigger(char *type, int sock, pthread_t thread_id);
    71   | void TA_reset_counters(pthread_t thread_id);
    72   |
    73   | #ifdef __cplusplus
    74   | }
    75   | #endif
    76   |
    77   |
    78   | #endif
    79   |