From: hades Date: Wed, 14 Mar 2001 16:19:29 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=85ba14895afc63af191bae0d8b8e3c4a2381e848;p=daqdata.git *** empty log message *** --- diff --git a/allParam/ca/client/caParam.c b/allParam/ca/client/caParam.c index 3fc598f..b4fcd21 100644 --- a/allParam/ca/client/caParam.c +++ b/allParam/ca/client/caParam.c @@ -1,10 +1,11 @@ #define _POSIX_C_SOURCE 199509L #include + +#include #include -#include #include -#include +#include #include @@ -37,7 +38,6 @@ typedef struct ParamIntResultS { typedef struct ParamBlobResultS { FILE *val; size_t *size; - size_t maxsize; const Param *my; int *retVal; } ParamBlobResult; @@ -273,7 +273,7 @@ int Param_getFilenameArray(const Param *my, const char *name, const char *idx, i return retVal; } -int Param_getBlob(const Param *my, const char *name, const char *idx, size_t maxsize, size_t *size, FILE *val) +int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *size, FILE *val) { int retVal = 0; int status; @@ -308,7 +308,6 @@ int Param_getBlob(const Param *my, const char *name, const char *idx, size_t max ParamBlobResult resultS, *result = &resultS; result->val = val; result->size = size; - result->maxsize = maxsize; result->my = my; result->retVal = &retVal; @@ -499,9 +498,7 @@ static void Param_copyBlobToAllocMem(struct event_handler_args args) ParamBlobResult *result = args.usr; dbr_long_t *buffer = (dbr_long_t *) args.dbr; - *(result->size) = (args.count > result->maxsize) ? - result->maxsize : - args.count; + *(result->size) = args.count; if(args.type == DBR_LONG && args.status == ECA_NORMAL) { fwrite(buffer, sizeof(dbr_long_t), *(result->size), result->val); } else { diff --git a/allParam/ca/server/paramRecord.cc b/allParam/ca/server/paramRecord.cc index bf0bf48..b3e6630 100644 --- a/allParam/ca/server/paramRecord.cc +++ b/allParam/ca/server/paramRecord.cc @@ -1,9 +1,9 @@ #define _POSIX_C_SOURCE 199509L extern "C" { + #include #include #include - #include } #include "paramRecord.h" diff --git a/allParam/ca/server/paramRecord.h b/allParam/ca/server/paramRecord.h index a40b21a..4eb5551 100644 --- a/allParam/ca/server/paramRecord.h +++ b/allParam/ca/server/paramRecord.h @@ -1,12 +1,12 @@ #ifndef PARAMRECORD_H #define PARAMRECORD_H +#include + extern "C" { #include } -#include - #include "record.h" class ParamRecord : public Record { diff --git a/allParam/ca/server/paramRecordSet.cc b/allParam/ca/server/paramRecordSet.cc index 1239e15..8c2d3ec 100644 --- a/allParam/ca/server/paramRecordSet.cc +++ b/allParam/ca/server/paramRecordSet.cc @@ -1,10 +1,10 @@ #define _POSIX_C_SOURCE 199509L extern "C" { + #include #include - #include #include - #include + #include #include } diff --git a/allParam/ca/server/paramRecordSet.h b/allParam/ca/server/paramRecordSet.h index a3b66c3..d1b3662 100644 --- a/allParam/ca/server/paramRecordSet.h +++ b/allParam/ca/server/paramRecordSet.h @@ -1,12 +1,12 @@ #ifndef PARAMRECORDSET_H #define PARAMRECORDSET_H +#include + extern "C" { #include } -#include - #include "paramRecord.h" #define MAX_PARAM_SRC 16 diff --git a/allParam/ca/server/paramServer.cc b/allParam/ca/server/paramServer.cc index 4f2bdc8..c0d2a51 100644 --- a/allParam/ca/server/paramServer.cc +++ b/allParam/ca/server/paramServer.cc @@ -4,8 +4,9 @@ extern "C" { #include - #include + #include + #include #include } diff --git a/allParam/file/fileParam.c b/allParam/file/fileParam.c index 3cf1b8a..bdc0ba5 100644 --- a/allParam/file/fileParam.c +++ b/allParam/file/fileParam.c @@ -2,10 +2,12 @@ #include +#include +#include #include -#include #include -#include +#include +#include #include @@ -168,6 +170,32 @@ int Param_getString(const Param *my, const char *name, const char *idx, int *row return Param_getStringArray(my, name, idx, 1, row, &val); } +int Param_getFilename(const Param *my, const char *name, const char *idx, int *row, char *val) +{ + int retVal = 0; + int rows = 0; + char value[PARAM_MAX_VALUE_LEN]; + + if (((retVal = Param_getString(my, name, idx, &rows, value)) == 0) && (rows == 1)) { + if (value[0] == '/') { + strcpy(val, value); + *row = 1; + } else { + if ((Param_getString(my, "glob", "basedir", &rows, val) == 0) && (rows == 1)) { + strcat(val, "/"); + strcat(val, value); + *row = 1; + } else { + strcpy(val, value); + *row = 1; + } + } + } else { + *row = 0; + } + return retVal; +} + int Param_getIntArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, unsigned long int *val) { int retVal = 0; @@ -228,32 +256,6 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int return 0; } -int Param_getFilename(const Param *my, const char *name, const char *idx, int *row, char *val) -{ - int retVal = 0; - int rows = 0; - char value[PARAM_MAX_VALUE_LEN]; - - if (((retVal = Param_getString(my, name, idx, &rows, value)) == 0) && (rows == 1)) { - if (value[0] == '/') { - strcpy(val, value); - *row = 1; - } else { - if ((Param_getString(my, "glob", "basedir", &rows, val) == 0) && (rows == 1)) { - strcat(val, "/"); - strcat(val, value); - *row = 1; - } else { - strcpy(val, value); - *row = 1; - } - } - } else { - *row = 0; - } - return retVal; -} - int Param_getFilenameArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, char **val) { int retVal = 0; @@ -292,6 +294,28 @@ int Param_getFilenameArray(const Param *my, const char *name, const char *idx, i return retVal; } +int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *size, FILE **val) +{ + int retVal = 0; + char filename[PARAM_MAX_VALUE_LEN]; + int rows; + FILE *stream; + + retVal = Param_getFilename(my, name, idx, &rows, filename); + if ((rows == 0) || (stream = fopen(filename, "r")) == NULL) { + Param_strerror((Param *) my, strerror(errno)); + *size = 0; + retVal = -1; + } else { + struct stat fileS, *file = &fileS; + stat(filename, file); + *size = (size_t) file->st_size; + fprintf(stderr, "Result: %d.\n", *size); + *val = stream; + } + return retVal; +} + int Param_storeInt(const Param *my, const char *name, const char *idx, unsigned long int value) { fprintf(((FileParam *) (my->specParam))->store, "set %s(%s)\t%lu\n", name, idx, value); diff --git a/allParam/include/allParam.h b/allParam/include/allParam.h index 538962f..89b42e0 100644 --- a/allParam/include/allParam.h +++ b/allParam/include/allParam.h @@ -25,11 +25,11 @@ void desParam(Param *); int Param_getInt(const Param *, const char *, const char *, int *, unsigned long int *); int Param_getString(const Param *, const char *, const char *, int *, char *); +int Param_getFilename(const Param *, const char *, const char *, int *, char *); int Param_getIntArray(const Param *, const char *, const char *, int, int *, unsigned long int *); int Param_getStringArray(const Param *, const char *, const char *, int, int *, char **); -int Param_getFilename(const Param *, const char *, const char *, int *, char *); int Param_getFilenameArray(const Param *, const char *, const char *, int, int *, char **); -int Param_getBlob(const Param *my, const char *, const char *, size_t, size_t *, FILE *); +int Param_getBlob(const Param *, const char *, const char *, size_t *, FILE **); int Param_storeInt(const Param *, const char *, const char *, unsigned long int); int Param_storeString(const Param *, const char *, const char *, const char *); diff --git a/allParam/ora/oraParam.pc b/allParam/ora/oraParam.pc index c8d2af2..c79bb91 100644 --- a/allParam/ora/oraParam.pc +++ b/allParam/ora/oraParam.pc @@ -1,9 +1,11 @@ #define _POSIX_C_SOURCE 199509L +#include +#include #include -#include #include -#include +#include +#include #include #include @@ -60,6 +62,11 @@ int Param_getString(const Param *my, const char *name, const char *idx, int *row return Param_getStringArray(my, name, idx, 1, row, &val); } +int Param_getFilename(const Param *my, const char *name, const char *idx, int *row, char *val) +{ + return Param_getFilenameArray(my, name, idx, 1, row, &val); +} + int Param_getIntArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, unsigned long int *val) { int retVal = 0; @@ -251,6 +258,66 @@ int Param_storeString(const Param *my, const char *name, const char *idx, const return 0; } +int Param_getFilenameArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, char **val) +{ + int retVal = 0; + int row = 0; + int i; + char *value[PARAM_MAX_ARRAY_LEN]; + + for (i = 0 ; i < maxrows ; i++) { + value[i] = malloc(PARAM_MAX_VALUE_LEN); + } + + if (((retVal = Param_getStringArray(my, name, idx, maxrows, rows, value)) == 0) && (*rows > 0)) { + char basedir[PARAM_MAX_VALUE_LEN]; + + if ((Param_getString(my, "glob", "basedir", &row, basedir) == 0) && (row == 1)) { + strcat(basedir, "/"); + } else { + strcpy(basedir, ""); + } + for (i = 0 ; i < *rows ; i++) { + if (value[i][0] != '/') { + strcpy(val[i], basedir); + } else { + strcpy(val[i], ""); + } + strcat(val[i], value[i]); + } + } else { + *rows = 0; + } + + for (i = 0 ; i < maxrows ; i++) { + free(value[i]); + } + + return retVal; +} + +int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *size, FILE **val) +{ + int retVal = 0; + char filename[PARAM_MAX_VALUE_LEN]; + int rows; + FILE *stream; + + retVal = Param_getFilename(my, name, idx, &rows, filename); + if ((rows == 0) || (stream = fopen(filename, "r")) == NULL) { + Param_strerror((Param *) my, strerror(errno)); + *size = 0; + retVal = -1; + } else { + struct stat fileS, *file = &fileS; + stat(filename, file); + *size = (size_t) file->st_size; + fprintf(stderr, "Result: %d.\n", *size); + *val = stream; + } + return retVal; +} + const char *Param_getErrStr(const Param *my) { return my->strerror; diff --git a/allParam/psql/psqlParam.c b/allParam/psql/psqlParam.c index 3c0a525..a29025d 100644 --- a/allParam/psql/psqlParam.c +++ b/allParam/psql/psqlParam.c @@ -1,9 +1,11 @@ #define _POSIX_C_SOURCE 199509L +#include +#include #include -#include #include -#include +#include +#include #include @@ -48,6 +50,11 @@ int Param_getString(const Param *my, const char *name, const char *idx, int *row return Param_getStringArray(my, name, idx, 1, row, &val); } +int Param_getFilename(const Param *my, const char *name, const char *idx, int *row, char *val) +{ + return Param_getFilenameArray(my, name, idx, 1, row, &val); +} + int Param_getIntArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, unsigned long int *val) { int fnum; @@ -152,6 +159,66 @@ int Param_getStringArray(const Param *my, const char *name, const char *idx, int return 0; } +int Param_getFilenameArray(const Param *my, const char *name, const char *idx, int maxrows, int *rows, char **val) +{ + int retVal = 0; + int row = 0; + int i; + char *value[PARAM_MAX_ARRAY_LEN]; + + for (i = 0 ; i < maxrows ; i++) { + value[i] = malloc(PARAM_MAX_VALUE_LEN); + } + + if (((retVal = Param_getStringArray(my, name, idx, maxrows, rows, value)) == 0) && (*rows > 0)) { + char basedir[PARAM_MAX_VALUE_LEN]; + + if ((Param_getString(my, "glob", "basedir", &row, basedir) == 0) && (row == 1)) { + strcat(basedir, "/"); + } else { + strcpy(basedir, ""); + } + for (i = 0 ; i < *rows ; i++) { + if (value[i][0] != '/') { + strcpy(val[i], basedir); + } else { + strcpy(val[i], ""); + } + strcat(val[i], value[i]); + } + } else { + *rows = 0; + } + + for (i = 0 ; i < maxrows ; i++) { + free(value[i]); + } + + return retVal; +} + +int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *size, FILE **val) +{ + int retVal = 0; + char filename[PARAM_MAX_VALUE_LEN]; + int rows; + FILE *stream; + + retVal = Param_getFilename(my, name, idx, &rows, filename); + if ((rows == 0) || (stream = fopen(filename, "r")) == NULL) { + Param_strerror((Param *) my, strerror(errno)); + *size = 0; + retVal = -1; + } else { + struct stat fileS, *file = &fileS; + stat(filename, file); + *size = (size_t) file->st_size; + fprintf(stderr, "Result: %d.\n", *size); + *val = stream; + } + return retVal; +} + int Param_storeInt(const Param *my, const char *name, const char *idx, unsigned long int val) { int i; diff --git a/allParam/tcl/tclParam.c b/allParam/tcl/tclParam.c index 0c6c349..ff0a13a 100644 --- a/allParam/tcl/tclParam.c +++ b/allParam/tcl/tclParam.c @@ -2,10 +2,12 @@ #include +#include +#include #include -#include #include -#include +#include +#include #include @@ -247,6 +249,28 @@ int Param_getFilenameArray(const Param *my, const char *name, const char *idx, i return retVal; } +int Param_getBlob(const Param *my, const char *name, const char *idx, size_t *size, FILE **val) +{ + int retVal = 0; + char filename[PARAM_MAX_VALUE_LEN]; + int rows; + FILE *stream; + + retVal = Param_getFilename(my, name, idx, &rows, filename); + if ((rows == 0) || (stream = fopen(filename, "r")) == NULL) { + Param_strerror((Param *) my, strerror(errno)); + *size = 0; + retVal = -1; + } else { + struct stat fileS, *file = &fileS; + stat(filename, file); + *size = (size_t) file->st_size; + fprintf(stderr, "Result: %d.\n", *size); + *val = stream; + } + return retVal; +} + int Param_storeInt(const Param *my, const char *name, const char *idx, unsigned long int value) { char buf[strlen("set ()\t\n") + 2 * PARAM_MAX_NAME_LEN + PARAM_MAX_VALUE_LEN];