XML * DSREP_localxml_load (WFTK_ADAPTOR * ad, va_list args) { char path[256]; char *id = (char *) 0; FILE *file; XML * ret; if (args) id = va_arg (args, char *); if (!id) { xml_set (ad->parms, "error", "No ID given."); return (XML *) 0; } strcpy (path, xml_attrval (ad->parms, "dir")); strcat (path, id); strcat (path, ".xml"); file = fopen (path, "r"); if (!file) { xml_set (ad->parms, "error", "Couldn't open file for reading."); return (XML *) 0; } ret = xml_read (file); fclose (file); return ret; }
int topo_file_load(topo_hdl_t *thp, topo_mod_t *mod, ttree_t *tp) { topo_file_t *tfp; if ((tfp = topo_hdl_zalloc(thp, sizeof (topo_file_t))) == NULL) return (topo_hdl_seterrno(thp, ETOPO_NOMEM)); tp->tt_file = tfp; tfp->tf_mod = mod; if (xml_read(thp, tp) < 0) { topo_file_unload(thp, tp); return (-1); } if (topo_xml_enum(tfp->tf_mod, tfp->tf_fileinfo, tp->tt_root) < 0) { topo_dprintf(TOPO_DBG_ERR, "Failed to enumerate topology: %s\n", topo_strerror(topo_hdl_errno(thp))); topo_file_unload(thp, tp); return (-1); } return (0); }
XML * PDREP_localxml_version (WFTK_ADAPTOR * ad, va_list args) { char path[256]; char * id = (char *) 0; FILE * file; XML * index; XML * value; xml_set (ad->parms, "error", ""); if (args) id = va_arg (args, char *); if (!id) { xml_set (ad->parms, "error", "No ID given."); return (XML *) 0; } strcpy (path, xml_attrval (ad->parms, "dir")); strcat (path, id); strcat (path, "__versions.xml"); file = fopen (path, "r"); if (!file) { xml_set (ad->parms, "error", "Procdef master file not found."); return (XML *) 0; } index = xml_read (file); if (!index) { xml_set (ad->parms, "error", "Procdef master file corrupted."); return (XML *) 0; } value = xml_create ("value"); xml_set (value, "value", xml_attrval (index, "ver")); xml_free (index); fclose (file); return value; }
/* void real_time_deal() { char buff[50]; FILE*fp; char *p; fp=fopen(DEV_CONF,"r"); if(fp==NULL) { printf("open device.config"); return; } //printf("1\n"); while((fgets(buff,50,fp))!=NULL) { if(strncmp(buff,"real_time_data",14)==0) { p=strchr(buff,'='); p++; buff[strlen(buff)-1]='\0'; real_time_data=atoi(p); printf("real_time_data=%d\n",real_time_data); } } fclose(fp); return; } void second_rate_change() { char buff[50]; FILE*fp; char *p; fp=fopen(DEV_CONF,"r"); if(fp==NULL) { printf("open device.config"); return; } while((fgets(buff,50,fp))!=NULL) { if(strncmp(buff,"second_rate",11)==0) { p=strchr(buff,'='); p++; buff[strlen(buff)-1]='\0'; second_rate=atoi(p); printf("second_rate=%d\n",second_rate); } } fclose(fp); return; } */ void *signal_wait() { int err; int rate; int signo; char value[20]; sigset_t sigset; sigemptyset(&sigset); sigaddset(&sigset,SIGUSR1); sigaddset(&sigset,SIGUSR2); while(1) { err=sigwait(&sigset,&signo); if(err!=0) exit(1); switch(signo) { case SIGUSR1: read_file("collect_rate","second_rate",value); second_rate=atoi(value); break; case SIGUSR2: read_file("real_time","real_time_data",value); real_time_data=atoi(value); if(real_time_data!=0) { xml_read(real_time_data); } real_time_data=1; break; case SIGINT: break; default: exit(1); } } }
XML * DSREP_localxml_save (WFTK_ADAPTOR * ad, va_list args) { char path[256]; struct stat statbuf; XML * ds = (XML *) 0; FILE * file; FILE * _index; XML * index; int counter; if (args) ds = va_arg (args, XML *); if (!ds) { xml_set (ad->parms, "error", "No datasheet given."); return (XML *) 0; } if (*xml_attrval (ds, "id")) { strcpy (path, xml_attrval (ad->parms, "dir")); strcat (path, xml_attrval (ds, "id")); strcat (path, ".xml"); file = fopen (path, "w"); } else { /* Find a unique ID. */ strcpy (path, xml_attrval (ad->parms, "dir")); strcat (path, "index"); if (stat (path, &statbuf) == -1) { _index = fopen (path, "w"); if (!_index) { xml_set (ad->parms, "error", "Unable to create index file."); return (XML *) 0; } index = xml_create ("index"); } else { _index = fopen (path, "r+"); if (_index) { index = xml_read (_index); rewind (_index); } else { xml_set (ad->parms, "error", "Unable to create index file."); return (XML *) 0; } } if (!index) { xml_set (ad->parms, "error", "Directory index file corrupt."); return (XML *) 0; } if (!xml_attrval (index, "counter")) xml_set (index, "counter", "0"); counter = xml_attrvalnum (index, "counter"); do { counter ++; xml_setnum (ds, "id", counter); strcpy (path, xml_attrval (ad->parms, "dir")); strcat (path, xml_attrval (ds, "id")); strcat (path, ".xml"); } while (stat (path, &statbuf) != -1); file = fopen (path, "w"); xml_setnum (index, "counter", counter); xml_write (_index, index); fclose (_index); } if (file) { xml_write (file, ds); fclose (file); } else { xml_set (ad->parms, "error", "Couldn't open file for writing."); return (XML *) 0; } return ds; }
static void tef_xml_read(void) { xml_read(); }
unsigned long pi_configlock_event_load (plugin_user_t * user, void *dummy, unsigned long event, void *arg) { FILE *fp; configlock_t *lock; config_element_t *elem; xml_node_t *base, *node; if (!arg) goto leave; while (locklist) { lock = locklist; locklist = locklist->next; free (lock); } fp = fopen ("configlock.xml", "r"); if (!fp) goto leave; base = xml_read (fp); if (!base) { fclose (fp); goto leave; } if (strcmp (base->name, HUBSOFT_NAME)) { xml_free (base); goto leave; } config_load (base); node = xml_node_find (base, "Config"); for (node = node->children; node; node = xml_next (node)) { elem = config_find (node->name); if (!elem) continue; lock = malloc (sizeof (configlock_t)); memset (lock, 0, sizeof (configlock_t)); lock->elem = elem; strncpy (lock->name, elem->name, CONFIG_NAMELENGTH); xml_node_get (node, elem->type, &lock->data.v_ptr); lock->next = locklist; locklist = lock; } xml_free (base); fclose (fp); return PLUGIN_RETVAL_CONTINUE; leave: return pi_configlock_event_load_old (user, dummy, event, NULL); }
static void gtc_read(void) { xml_read(); }
int main (int argc, char *argv[]) { xml= xml_read(stdin); xml_prepend (xml, xml_create("boogida")); xml_write (stdout, xml); }
static void osm_read(void) { xml_read(); }
static void xol_read(void) { xml_read(); }
static void kml_read(void) { xml_read(); }