#define _POSIX_C_SOURCE 199509L
#include <unistd.h>
+
+#include <ctype.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <ctype.h>
+#include <string.h>
#include <cadef.h>
typedef struct ParamBlobResultS {
FILE *val;
size_t *size;
- size_t maxsize;
const Param *my;
int *retVal;
} ParamBlobResult;
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;
ParamBlobResult resultS, *result = &resultS;
result->val = val;
result->size = size;
- result->maxsize = maxsize;
result->my = my;
result->retVal = &retVal;
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 {
#define _POSIX_C_SOURCE 199509L
extern "C" {
+ #include <ctype.h>
#include <stdio.h>
#include <string.h>
- #include <ctype.h>
}
#include "paramRecord.h"
#ifndef PARAMRECORD_H
#define PARAMRECORD_H
+#include <gdd.h>
+
extern "C" {
#include <allParam.h>
}
-#include <gdd.h>
-
#include "record.h"
class ParamRecord : public Record {
#define _POSIX_C_SOURCE 199509L
extern "C" {
+ #include <ctype.h>
#include <stdio.h>
- #include <string.h>
#include <stdlib.h>
- #include <ctype.h>
+ #include <string.h>
#include <syslog.h>
}
#ifndef PARAMRECORDSET_H
#define PARAMRECORDSET_H
+#include <casdef.h>
+
extern "C" {
#include <allParam.h>
}
-#include <casdef.h>
-
#include "paramRecord.h"
#define MAX_PARAM_SRC 16
extern "C" {
#include <unistd.h>
- #include <string.h>
+
#include <ctype.h>
+ #include <string.h>
#include <syslog.h>
}
#include <unistd.h>
+#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <ctype.h>
+#include <string.h>
+#include <sys/stat.h>
#include <allParam.h>
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;
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;
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);
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 *);
#define _POSIX_C_SOURCE 199509L
+#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <ctype.h>
+#include <string.h>
+#include <sys/stat.h>
#include <oraca.h>
#include <sqlca.h>
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;
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;
#define _POSIX_C_SOURCE 199509L
+#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <ctype.h>
+#include <string.h>
+#include <sys/stat.h>
#include <libpq-fe.h>
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;
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;
#include <unistd.h>
+#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <ctype.h>
+#include <string.h>
+#include <sys/stat.h>
#include <tcl.h>
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];