00001
00002
00003
00004 #include <iostream.h>
00005 #include <string>
00006
00007 #include "IO/mutator.h"
00008 #include "IO/control-device.h"
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 int main(int argc, char* argv[]) {
00024
00025
00026
00027
00028
00029
00030 ControlDevice Ctrl = GetCommandlineAndFileControlDevice(argc,argv,"ex1.in","main");
00031
00032 int n = 5;
00033 int m = 7;
00034 double x = 1.0, y = 2.0;
00035 std::string name1_1 = "1_1", name1_2 = "1_2";
00036 std::string name2_1 = "2_1", name2_2 = "2_2";
00037
00038 bool flag = true;
00039 bool print_variables = true;
00040
00041 Ctrl.add("print",GetCommentedMutator(print_variables,
00042 "<bool> : print values of variables?"));
00043 Ctrl.add("n", GetMutator(n));
00044 Ctrl.add("n", GetMutator(m));
00045
00046
00047 ControlDevice Ctrl1 = Ctrl.getSubDevice("sub1");
00048 Ctrl1.add("flag-on", GetTrueOnReadMutator(flag));
00049 Ctrl1.add("flag-off", GetFalseOnReadMutator(flag));
00050 Ctrl1.add("x", GetMutator(x));
00051 Ctrl1.add("y", GetMutator(y));
00052
00053
00054 ControlDevice Ctrl1_1 = Ctrl1.getSubDevice("sub1.1");
00055 Ctrl1_1.add("name1", GetMutator(name1_1));
00056 Ctrl1_1.add("name2", GetMutator(name1_2));
00057
00058
00059 ControlDevice Ctrl1_2 = Ctrl1.getSubDevice("sub1.2");
00060 Ctrl1_2.add("name1", GetMutator(name2_1));
00061 Ctrl1_2.add("name2", GetMutator(name2_2));
00062
00063
00064
00065
00066
00067
00068 Ctrl.update();
00069
00070
00071
00072 Ctrl.print_values(cout);
00073
00074
00075
00076 Ctrl.print_unrecognized(cout);
00077
00078
00079 if(print_variables) {
00080 cerr << "\n"
00081 << "Values of the variables:\n"
00082 << "n: " << n << '\n'
00083 << "m: " << m << '\n'
00084 << "x: " << x << '\n'
00085 << "y: " << y << '\n'
00086 << "flag: " << flag << '\n'
00087 << "name1_1: " << name1_1 << '\n'
00088 << "name1_2: " << name1_2 << '\n'
00089 << "name2_1: " << name2_1 << '\n'
00090 << "name2_2: " << name2_2 << '\n';
00091 }
00092 }