Save working version Command library.
[command.git] / include / command.h
1 #ifndef __COMMAND_COMMAND_H
2 #define __COMMAND_COMMAND_H
3
4 #include <string>
5 #include <vector>
6 #include <iostream>
7
8 #include "parameter.h"
9
10 namespace command {
11     /**
12      * Main class for handling user passed parameters from command line.
13      */
14     class Command {
15     protected:
16         unsigned int argc;
17         std::vector<std::string> _argv;
18         std::vector<Parameter *> args;
19     public:
20         /**
21          * Default constructor.
22          *
23          * @param 
24          * @param 
25          * @param 
26          */
27         Command(unsigned int argc, char *argv[], std::initializer_list<Parameter *> params)
28             : args(params) {
29             for(Parameter *param : params) {
30                 std::cout << "Command foreach" << std::endl;
31                 param->handle();
32             }
33         }
34         
35         ~Command() {
36             for (Parameter * parameter : args) {
37                 delete parameter;
38             }
39         }
40     };
41 }
42
43 #endif /* __COMMAND_COMMAND_H */