33 #define ORADATA_LEN 256 46 static pthread_mutex_t st_mutex = PTHREAD_MUTEX_INITIALIZER;
49 #define ORA_LOCK() MUTEX_LOCK(&st_mutex) 50 #define ORA_UNLOCK() MUTEX_UNLOCK(&st_mutex) 54 if (pthread_mutex_lock(&st_mutex) != 0) { \ 55 ZE_LogSysError("pthread_mutex_lock(st_mutex)"); \ 58 #define ORA_UNLOCK() \ 59 if (pthread_mutex_unlock(&st_mutex) != 0) { \ 60 ZE_LogSysError("pthread_mutex_unlock(st_mutex)"); \ 73 printf(
"# Let's dump j_oradata_table : \n");
78 snprintf(sodds,
sizeof (sodds),
"odds=%.3f", exp(p.
pOdds));
80 printf(
"%-10s %-20s %s\n", p.
type, sodds, p.
data);
82 printf(
"-> %-10s %-8s %8.2f : %s\n", p.
type, p.
action, (
double) p.
pOdds,
102 if ((res = strcasecmp(a->
type, b->
type)) != 0)
105 return strcasecmp(a->
data, b->
data);
112 #define KEYVALUE "^[a-z0-9_-]+=[^ \t]+" 115 add_oradata_rec(vs, arg)
122 char *v = NULL, *k = NULL;
128 memset(&r, 0,
sizeof (r));
160 if (strspn(val,
"0123456789.") == strlen(val))
167 if (strspn(val,
"0123456789.") == strlen(val)) {
205 r =
zm_RdFile(path, tag, add_oradata_rec, NULL);
216 static int htbl_ok =
FALSE;
221 if ((fname == NULL) || (strlen(fname) == 0))
224 if ((fname == NULL) || (strlen(fname) == 0))
229 if (htbl_ok ==
FALSE) {
230 memset(&htbl, 0,
sizeof (htbl));
265 id =
STRNULL(
id,
"00000000.000");
269 memset(&p, 0,
sizeof (p));
276 if (strcasecmp(type, p.
type) != 0)
296 ZE_MessageInfo(11,
"%s ->Computed ORACLE %-9s odds is %5.2f ...",
id, type,
309 static pthread_mutex_t vc_mutex = PTHREAD_MUTEX_INITIALIZER;
312 if (pthread_mutex_lock(&vc_mutex) != 0) { \ 313 ZE_LogSysError("pthread_mutex_lock(vc_mutex)"); \ 316 #define VC_UNLOCK() \ 317 if (pthread_mutex_unlock(&vc_mutex) != 0) { \ 318 ZE_LogSysError("pthread_mutex_unlock(vc_mutex)"); \ 331 double *ta = NULL, *tb = NULL;
333 double ma, mb, ab, res;
338 if ((a == NULL) || (b == NULL) || (dim <= 0))
343 if (1 || (dim > sdim)) {
346 if ((ta = (
double *) malloc(dim *
sizeof (
double))) == NULL)
348 if ((tb = (
double *) malloc(dim *
sizeof (
double))) == NULL)
353 if ((ta != NULL) && (tb != NULL)) {
354 for (i = 0; i < dim; i++) {
374 for (i = 0; i < dim; i++) {
379 if ((ma > 0.) && (mb > 0.))
380 res = ab / sqrt(ma * mb);
414 if ((buf == NULL) || (size == 0))
417 if ((nbuf = strdup(buf)) == NULL) {
424 while (*++p !=
'\0') {
430 if (isalpha(*(p - 1)) || isalpha(*(p + 1))) {
457 if (isalpha(*(p - 1)) || (0 && isalpha(*(p + 1)))) {
483 for (p = q = nbuf; *p !=
'\0'; p++) {
bool load_oradata_table(char *cfdir, char *fname)
int zm_RdFile(char *fname, char *tag, RDFILE_F f, void *arg)
char * realcleanup_text_buf(char *buf, size_t size)
bool bestof_init(bestof_T *b, int dim, bestcomp_F bcmp)
int count_oradata(char *id, char *type, char *data, bool find, double *odds)
double bestof_average(bestof_T *b)
bool zeStrRegex(char *, char *, long *, long *, bool)
#define CF_LOG_LEVEL_ORACLE
bool read_conf_data_file(char *cfdir, char *fname, char *dfile, read_conf_data_file_F func)
int zeTable_Clear(zeTbl_T *)
bool bestof_add(bestof_T *b, double v)
#define ZE_MessageNotice(level,...)
double vector_compare(double *a, double *b, int dim)
int zeTable_Add(zeTbl_T *, void *)
int zeTable_Get_First(zeTbl_T *, void *)
#define ZE_MessageInfo(level,...)
#define ZE_MessageWarning(level,...)
void dump_oradata_table()
#define ZE_LogSysError(...)
char * cf_get_str(int id)
int zeTable_Get_Next(zeTbl_T *, void *)
int zeTable_Init(zeTbl_T *, size_t, int, int(*)(const void *, const void *))
#define STRCASEEQUAL(a, b)
#define CF_ORACLE_DATA_FILE