Make privilege property consistent with the GumTree hipadaba schema.

This commit is contained in:
Douglas Clowes
2012-11-29 14:27:49 +11:00
parent cabb3f7f4c
commit a41941ff9b

View File

@ -30,23 +30,23 @@
#include "sicsdata.h" #include "sicsdata.h"
#include "HistMem.i" #include "HistMem.i"
#define PRIVNAM "priv" #define PRIVNAM "privilege"
/*==================== support code ====================================*/ /*==================== support code ====================================*/
static void AddPrivProperty(pHdb node, int priv) static void AddPrivProperty(pHdb node, int priv)
{ {
char pPriv[80]; char pPriv[80];
switch (priv) { switch (priv) {
case usInternal: case usInternal:
strcpy(pPriv, "internal"); strcpy(pPriv, "READ_ONLY");
break; break;
case usMugger: case usMugger:
strcpy(pPriv, "manager"); strcpy(pPriv, "MANAGER");
break; break;
case usUser: case usUser:
strcpy(pPriv, "user"); strcpy(pPriv, "USER");
break; break;
case usSpy: case usSpy:
strcpy(pPriv, "spy"); strcpy(pPriv, "SPY");
break; break;
default: default:
assert(0); assert(0);
@ -468,7 +468,7 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name)
pHdbCallback pCall = NULL; pHdbCallback pCall = NULL;
commandContext comCom; commandContext comCom;
int type; int type;
char command[1024]; hdbValue v;
switch (pVar->eType) { switch (pVar->eType) {
case veInt: case veInt:
@ -496,8 +496,18 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name)
} }
AppendHipadabaCallback(node, pCall); AppendHipadabaCallback(node, pCall);
RegisterCallback(pVar->pCall, VALUECHANGE, ValueCallback, node, NULL); RegisterCallback(pVar->pCall, VALUECHANGE, ValueCallback, node, NULL);
snprintf(command, 1023, "%s ", pVar->name); switch (pVar->eType) {
SetHdbProperty(node, "sicscommand", command); case veInt:
v = MakeHdbInt(pVar->iVal);
break;
case veFloat:
v = MakeHdbFloat((double) pVar->fVal);
break;
case veText:
v = MakeHdbText(pVar->text);
break;
}
UpdateHipadabaPar(node, v, NULL);
node->protected = 1; node->protected = 1;
return node; return node;