/* 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);
	}
}
Exemple #2
0
	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);
}
Exemple #5
0
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;
}