|
SASC
DVBSoftCAM
|
#include <config.h>
Inheritance diagram for cConfig< T >:Public Member Functions | |
| cConfig (void) | |
| virtual | ~cConfig () |
| const char * | FileName (void) |
| bool | Load (const char *FileName=NULL, bool AllowComments=false, bool MustExist=false) |
| bool | Save (void) |
| cConfig (void) | |
| virtual | ~cConfig () |
| const char * | FileName (void) |
| bool | Load (const char *FileName=NULL, bool AllowComments=false, bool MustExist=false) |
| bool | Save (void) |
| const char* cConfig< T >::FileName | ( | void | ) | [inline] |
Definition at line 91 of file config.h.
Referenced by cConfig< cTimer >::Load().
{ return fileName; }
| const char* cConfig< T >::FileName | ( | void | ) | [inline] |
| bool cConfig< T >::Load | ( | const char * | FileName = NULL, |
| bool | AllowComments = false, |
||
| bool | MustExist = false |
||
| ) | [inline] |
Reimplemented in cChannels.
Definition at line 92 of file config.h.
{
cConfig<T>::Clear();
if (FileName) {
free(fileName);
fileName = strdup(FileName);
allowComments = AllowComments;
}
bool result = !MustExist;
if (fileName && access(fileName, F_OK) == 0) {
isyslog("loading %s", fileName);
FILE *f = fopen(fileName, "r");
if (f) {
char *s;
int line = 0;
cReadLine ReadLine;
result = true;
while ((s = ReadLine.Read(f)) != NULL) {
line++;
if (allowComments) {
char *p = strchr(s, '#');
if (p)
*p = 0;
}
stripspace(s);
if (!isempty(s)) {
T *l = new T;
if (l->Parse(s))
Add(l);
else {
esyslog("ERROR: error in %s, line %d", fileName, line);
delete l;
result = false;
break;
}
}
}
fclose(f);
}
else {
LOG_ERROR_STR(fileName);
result = false;
}
}
if (!result)
fprintf(stderr, "vdr: error while reading '%s'\n", fileName);
return result;
}
| bool cConfig< T >::Load | ( | const char * | FileName = NULL, |
| bool | AllowComments = false, |
||
| bool | MustExist = false |
||
| ) | [inline] |
Reimplemented in cChannels.
Definition at line 92 of file config.h.
{
cConfig<T>::Clear();
if (FileName) {
free(fileName);
fileName = strdup(FileName);
allowComments = AllowComments;
}
bool result = !MustExist;
if (fileName && access(fileName, F_OK) == 0) {
isyslog("loading %s", fileName);
FILE *f = fopen(fileName, "r");
if (f) {
char *s;
int line = 0;
cReadLine ReadLine;
result = true;
while ((s = ReadLine.Read(f)) != NULL) {
line++;
if (allowComments) {
char *p = strchr(s, '#');
if (p)
*p = 0;
}
stripspace(s);
if (!isempty(s)) {
T *l = new T;
if (l->Parse(s))
Add(l);
else {
esyslog("ERROR: error in %s, line %d", fileName, line);
delete l;
result = false;
break;
}
}
}
fclose(f);
}
else {
LOG_ERROR_STR(fileName);
result = false;
}
}
if (!result)
fprintf(stderr, "vdr: error while reading '%s'\n", fileName);
return result;
}