/* This function branches to the correct output format */ void output_record(llist *l) { switch (report_format) { case RPT_RAW: output_raw(l); break; case RPT_DEFAULT: output_default(l); break; case RPT_INTERP: output_interpreted(l); break; case RPT_PRETTY: break; case RPT_CSV: feed_auparse(l, csv_event); break; case RPT_TEXT: feed_auparse(l, text_event); break; default: fprintf(stderr, "Report format error"); exit(1); } }
void inc_files(const char *name) { if ( global_debug_mode || global_verbose_mode ) output_debug("processing %s", name); else { static size_t len = 0; char blank[1024]; memset(blank,32,len); blank[len]='\0'; len = output_raw("%s\rProcessing %s...\r",blank,name)-len; } wlock(); n_files++; wunlock(); };
/* This function branches to the correct output format */ void output_record(llist *l) { switch (report_format) { case RPT_RAW: output_raw(l); break; case RPT_DEFAULT: output_default(l); break; case RPT_INTERP: output_interpreted(l); break; case RPT_PRETTY: break; default: fprintf(stderr, "Report format error"); exit(1); } }
void module_libinfo(char *module_name) { MODULE *mod = module_load(module_name,0,NULL); if (mod!=NULL) { CLASS *c; PROPERTY *p; GLOBALVAR *v=NULL; output_raw("Module name....... %s\n", mod->name); output_raw("Major version..... %d\n", mod->major); output_raw("Minor version..... %d\n", mod->minor); output_raw("Classes........... "); for (c=mod->oclass; c!=NULL; c=c->next) output_raw("%s%s", c->name, c->next!=NULL?", ":""); output_raw("\n"); output_raw("Implementations... "); if (mod->cmdargs!=NULL) output_raw("cmdargs "); if (mod->getvar!=NULL) output_raw("getvar "); if (mod->setvar!=NULL) output_raw("setvar "); if (mod->import_file!=NULL) output_raw("import_file "); if (mod->export_file!=NULL) output_raw("export_file "); if (mod->check!=NULL) output_raw("check "); if (mod->kmldump!=NULL) output_raw("kmldump "); #ifndef _NO_CPPUNIT if (mod->module_test!=NULL) output_raw("module_test "); #endif output_raw("\nGlobals........... "); for (p=mod->globals; p!=NULL; p=p->next) output_raw("%s ", p->name); while ((v=global_getnext(v))!=NULL) { if (strncmp(v->prop->name,module_name,strlen(module_name))==0) { char *vn = strstr(v->prop->name,"::"); if (vn!=NULL) output_raw("%s ", vn+2); } } output_raw("\n"); } else output_error("Module %s load failed", module_name); }
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { static first = 1; char key[MAXNAME]; int i; if (first==1) { first = 0; /* prevent Matlab from clearing GridLAB */ mexLock(); /* register Matlab output routines */ output_set_stdout(mexPrintf); output_set_stderr(cmex_printerr); /* display legal stuff */ legal_license(); /* initialize GridLAB */ exec_init(); } /* check number of input arguments */ if (nrhs<1) { output_error("Use gl('help') for a list of commands."); return; } /* check type of first argument */ if (!mxIsChar(prhs[0])) { output_error("token must be a string"); return; } /* read first argument */ if (mxGetString(prhs[0],key,sizeof(key))!=0) output_warning("GridLAB key string too long"); /* scan command map to find call function */ for (i=0; i<sizeof(cmdMap)/sizeof(cmdMap[0]); i++) { if (strcmp(key,cmdMap[i].name)==0) { if (cmdMap[i].call == NULL) /* help request */ { int j; if (nrhs==1) { output_raw("Available top-level commands\n"); for (j=0; j<sizeof(cmdMap)/sizeof(cmdMap[0]); j++) output_raw("\t%s\t%s\n", cmdMap[j].name, cmdMap[j].brief); output_raw("Use gl('help',command) for details\n"); return; } else if (mxIsChar(prhs[1])) { char cmd[MAXNAME]; if (mxGetString(prhs[1],cmd,sizeof(cmd))!=0) output_warning("command string too long to read fully"); for (j=0; j<sizeof(cmdMap)/sizeof(cmdMap[0]); j++) { if (strcmp(cmd,cmdMap[j].name)==0) { output_raw("Help for command '%s'\n\n%s\n", cmd, cmdMap[j].detail ? cmdMap[j].detail : "\tNo details available\n"); return; } } output_error("Command '%s' does not exist", cmd); return; } else { output_error("command must be a string"); return; } } else { (cmdMap[i].call)(nlhs,plhs,nrhs-1,prhs+1); return; } } } /* function not found */ { int nret = nlhs; output_error("unrecognized GridLAB operation--gl('help') for list"); while (nret-->0) plhs[nret] = mxCreateDoubleMatrix(0,0,mxREAL); } return; }