- Adapted indenation to new agreed upon system
- Added support for second generation scriptcontext based counter
This commit is contained in:
46
logsetup.c
46
logsetup.c
@ -5,7 +5,9 @@
|
||||
static char *loggerID = "loggerID";
|
||||
|
||||
static hdbCallbackReturn LoggerUpdateCallback(pHdb node,
|
||||
void *userData, pHdbMessage message) {
|
||||
void *userData,
|
||||
pHdbMessage message)
|
||||
{
|
||||
Logger *logger = userData;
|
||||
pDynString str;
|
||||
SConnection *conn = NULL;
|
||||
@ -20,32 +22,34 @@ static hdbCallbackReturn LoggerUpdateCallback(pHdb node,
|
||||
}
|
||||
return hdbContinue;
|
||||
}
|
||||
|
||||
if((mm = GetHdbUpdateMessage(message)) == NULL){
|
||||
|
||||
if ((mm = GetHdbUpdateMessage(message)) == NULL) {
|
||||
return hdbContinue;
|
||||
}
|
||||
|
||||
|
||||
value = *(mm->v);
|
||||
|
||||
|
||||
str = formatValue(value, node);
|
||||
LoggerWrite(logger, time(NULL), LoggerPeriod(logger), GetCharArray(str));
|
||||
DeleteDynString(str);
|
||||
return hdbContinue;
|
||||
}
|
||||
|
||||
static int LogSetup(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
int argc, char *argv[]) {
|
||||
static int LogSetup(SConnection * pCon, SicsInterp * pSics, void *pData,
|
||||
int argc, char *argv[])
|
||||
{
|
||||
pHdb node;
|
||||
pHdbCallback cb;
|
||||
static char basepath[1024]="/";
|
||||
static char basepath[1024] = "/";
|
||||
char buf[1024];
|
||||
char *p, *name;
|
||||
static char *loggerDir=NULL;
|
||||
static char *loggerDir = NULL;
|
||||
int numeric, period;
|
||||
Logger *logger;
|
||||
|
||||
|
||||
if (argc < 2) {
|
||||
SCPrintf(pCon, eError, "ERROR: should be: logsetup <node> [<period> [<filename>]]");
|
||||
SCPrintf(pCon, eError,
|
||||
"ERROR: should be: logsetup <node> [<period> [<filename>]]");
|
||||
return 0;
|
||||
}
|
||||
if (strcasecmp(argv[1], "basepath") == 0) {
|
||||
@ -57,7 +61,8 @@ static int LogSetup(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
}
|
||||
if (loggerDir == NULL) {
|
||||
loggerDir = IFindOption(pSICSOptions, "LoggerDir");
|
||||
if (loggerDir == NULL) loggerDir="./";
|
||||
if (loggerDir == NULL)
|
||||
loggerDir = "./";
|
||||
LoggerSetDir(loggerDir);
|
||||
}
|
||||
if (strcasecmp(argv[1], "directory") == 0) {
|
||||
@ -82,10 +87,11 @@ static int LogSetup(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
snprintf(buf, sizeof buf, "%s", argv[1]);
|
||||
}
|
||||
for (p = buf; *p != '\0'; p++) {
|
||||
if (*p =='/') *p = '.';
|
||||
if (*p == '/')
|
||||
*p = '.';
|
||||
}
|
||||
if (buf[0] == '.') {
|
||||
name = buf+1;
|
||||
name = buf + 1;
|
||||
} else {
|
||||
name = buf;
|
||||
}
|
||||
@ -95,19 +101,21 @@ static int LogSetup(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
numeric = 0;
|
||||
}
|
||||
logger = FindHdbCallbackData(node, loggerID);
|
||||
if (logger != 0) { /* logger exists already, changed only period */
|
||||
if (logger != 0) { /* logger exists already, changed only period */
|
||||
LoggerSetPeriod(logger, period);
|
||||
} else {
|
||||
logger = LoggerMake(name, period, !numeric);
|
||||
LoggerSetNumeric(logger, numeric);
|
||||
cb = MakeHipadabaCallback(LoggerUpdateCallback, logger, (void (*)(void *))LoggerKill);
|
||||
cb = MakeHipadabaCallback(LoggerUpdateCallback, logger,
|
||||
(void (*)(void *)) LoggerKill);
|
||||
assert(cb);
|
||||
AppendHipadabaCallback(node, cb);
|
||||
}
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void LogSetupInit(void) {
|
||||
AddCmd("LogSetup",LogSetup);
|
||||
void LogSetupInit(void)
|
||||
{
|
||||
AddCmd("LogSetup", LogSetup);
|
||||
}
|
||||
|
Reference in New Issue
Block a user