+ string ann = "default.ann";
+ Model model(0);
+ bool detectModel = true;
+ bool onlyIdentify = false;
+ bool printPerm = false;
+
+ //Parse command line arguments
+ int opt;
+ while ((opt = getopt(argc, argv, "im:n:hp")) != -1) {
+ switch (opt) {
+ case 'm':
+ model = Model::modelFactory(optarg);
+ detectModel = false;
+ break;
+ case 'n':
+ ann = optarg;
+ break;
+ case 'i':
+ onlyIdentify = true;
+ break;
+ case 'p':
+ printPerm = true;
+ break;
+ case 'h':
+ cout << "Usage: " << argv[0] << " [OPTION] [FILE]" << endl
+ << endl << " -m <model> Specifies which model to use for sorting: Whirl, X, Zipper, FatX or Cloud "
+ << endl << " -n <ann> Specifies which artificial neural network to use for identification. '" << ann << "' is used by default"
+ << endl << " -i Only identify the model, don't try to sort it"
+ << endl << " -p Print the resulting permutation at each sorting step"
+ << endl << " -h Prints this help message"
+ << endl << endl
+ << "With no FILE, or if FILE is '-', stdin will be used"
+ << endl;
+ exit(EXIT_SUCCESS);
+ break;
+ default: /* '?' */
+ cerr << "Usage: " << argv[0] << " [-n <ann>] [-h] [FILE]" << endl;
+ exit(EXIT_FAILURE);
+ }
+ }