#include "gui/ConnWindow.hh"
+#include "alg/mussa_class.hh"
+#include "mussa_exceptions.hh"
#include <iostream>
using namespace std;
char
parse_args(int argc, char **argv, string *a_file_path, int *window,
- int *threshold, char *ana_mode, float *ent_thres);
+ int *threshold, enum Mussa::analysis_modes *ana_mode, float *ent_thres);
int main(int argc, char **argv)
char * picked_file;
int window, threshold;
float ent_thres;
- char run_mode, ana_mode;
+ char run_mode;
+ enum Mussa::analysis_modes ana_mode;
int x_max=1000;
int y_max=500;
string err_msg;
if ((run_mode == 'f') || (run_mode == 'n'))
{
err_msg = an_analysis.load_mupa_file(a_file_path);
- err_msg = an_analysis.analyze(window, threshold, ana_mode, ent_thres);
+ an_analysis.analyze(window, threshold, ana_mode, ent_thres);
//an_overlord.do_analysis();
}
}
}
-struct ParseError
-{
- string err;
- ParseError(const string& msg) : err(msg) { } ;
-};
// minimal arg reading function, not very robust to errors
char
parse_args(int argc, char **argv, string *a_file_path, int *window,
- int *threshold, char *ana_mode, float *ent_thres)
+ int *threshold, enum Mussa::analysis_modes *ana_mode, float *ent_thres)
{
int i, else_i;
string an_arg;
*threshold = 0;
*ent_thres = 0.0;
run_mode = 'e'; //error default if no run mode set implicitly or explicitly
- *ana_mode = 't'; // default to transitivie analyses mode
-
+ *ana_mode = Mussa::TransitiveNway; // default to transitivie analyses mode
// no args means gui only mode
if (argc == 1)
run_mode = 'g';
- // 1 arg means its a mupa file and run in full mode
- /*
- else if (argc == 2)
- {
- }
- */
else
{
else_i = 0;
// see what alternate mode the user wants to run in
if (an_arg == "-m")
{
- an_arg = * ++argv;
- i++;
- if ( (an_arg == "v") || (an_arg == "n") ) //only 2 valid modes so far
- run_mode = an_arg[0];
- else
- {
- cout << "Error: \'" << an_arg;
- cout << "\' is not a valid analysis mode for -a argument" << endl;
- throw ParseError("not valid -a argument");
- }
- *a_file_path = * ++argv;
- i++;
+ an_arg = * ++argv;
+ i++;
+ if ( (an_arg == "v") || (an_arg == "n") ) //only 2 valid modes so far
+ run_mode = an_arg[0];
+ else
+ {
+ cout << "Error: \'" << an_arg;
+ cout << "\' is not a valid analysis mode for -a argument" << endl;
+ throw cmdline_error("not valid -a argument");
+ }
+ *a_file_path = * ++argv;
+ i++;
}
// alternate analyses modes
else if (an_arg == "-a")
{
- an_arg = * ++argv;
- i++;
- // t = transitive, r = radial, e = entropy
- if ( (an_arg == "t") || (an_arg == "r") || (an_arg == "e") )
- *ana_mode = an_arg[0];
- else
- {
- cout << "Error: \'" << an_arg;
- cout << "\' is not a valid run mode for -m argument" << endl;
- throw ParseError("bad argument -m");
- }
-
+ an_arg = * ++argv;
+ i++;
+ // t = transitive, r = radial, e = entropy
+ if (an_arg == "t") *ana_mode = Mussa::TransitiveNway;
+ else if (an_arg == "r") *ana_mode = Mussa::RadialNway;
+ else if (an_arg == "e") *ana_mode = Mussa::EntropyNway;
+ else
+ {
+ cout << "Error: \'" << an_arg;
+ cout << "\' is not a valid run mode for -m argument" << endl;
+ throw cmdline_error("bad argument -m");
+ }
}
else if (an_arg == "-w") // alternate window size arg
{
- *window = atoi(* ++argv);
- i++;
+ *window = atoi(* ++argv);
+ i++;
}
else if (an_arg == "-t") // alternate threshold arg
{
- *threshold = atoi(* ++argv);
- i++;
+ *threshold = atoi(* ++argv);
+ i++;
}
else if (an_arg == "-et") // alternate entropy threshold arg
{
- *ent_thres = atof(* ++argv);
- i++;
+ *ent_thres = atof(* ++argv);
+ i++;
}
else
{
- if (else_i == 0)
- {
- *a_file_path = an_arg;
- run_mode = 'f';
- else_i++;
- }
- else
- {
- //cout << "Error, unknown arg: \'" << an_arg << "\'" << endl;
- cout << "Error, too many filenames: \'" << an_arg << "\'" << endl;
- run_mode == 'e';
- }
+ if (else_i == 0)
+ {
+ *a_file_path = an_arg;
+ run_mode = 'f';
+ else_i++;
+ }
+ else
+ {
+ //cout << "Error, unknown arg: \'" << an_arg << "\'" << endl;
+ cout << "Error, too many filenames: \'" << an_arg << "\'" << endl;
+ run_mode == 'e';
+ }
}
}
}