1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
std::map<std::string,std::string> m_statusvars;
// Global functions defined in main.cpp
void exportStatusVars(char *pwrdev){
FILE* statusfile;
char filename[15];
std::map<std::string,std::string>::iterator it;
memset(filename,'\0',15);
// Write status to status file
sprintf(filename,"status%c",pwrdev[strlen(pwrdev)-1]);
statusfile = fopen(filename,"w");
if (statusfile==0) return;
for (it = m_statusvars.begin(); it != m_statusvars.end(); it++) {
fprintf(statusfile,"<%s>%s</%s>\n",(*it).first.c_str(),(*it).second.c_str(),(*it).first.c_str());
}
fclose(statusfile);
// Read pid from file and signal
statusfile = fopen("net.pid","r");
if (!statusfile) return;
int pid;
fscanf(statusfile,"%d",&pid);
fclose(statusfile);
kill(pid,SIGTSTP);
}
void setStatusVar(const char* var, const char* value, bool commit, char* pwrdev){
m_statusvars[var] = value;
if(commit) exportstatusvars(pwrdev);
}
void setStatus(const char* status, char *pwrdev){
setStatusVar("STATUS", status, true, pwrdev);
}
|