Command  0.3
parameter.h
1#ifndef __COMMAND_PARAMETER_H
2#define __COMMAND_PARAMETER_H
3
4#include <string>
5#include <sstream>
6
7#include "descriptive.h"
8#include "callable.h"
9
10namespace command {
17 class Parameter : public Descriptive {
18 protected:
20 bool used = false;
21
22 public:
23 typedef class Parameter Type;
29 Parameter(const std::string & description)
30 : Descriptive(description) {
31 }
32
33 virtual ~Parameter() { }
34
38 virtual void handle() = 0;
39
47 virtual bool understand(const std::string & ) = 0;
48
55 virtual bool isRequired() {
56 return false;
57 };
58
64 virtual bool isUsed() {
65 return used;
66 }
67
70 virtual bool hungryForValue() {
71 return false;
72 }
73
77 virtual unsigned int valuePosition(const std::string & ) = 0;
78 };
79}
80
81#endif /* __COMMAND_PARAMETER_H */
Definition: descriptive.h:10
Definition: parameter.h:17
Parameter(const std::string &description)
Definition: parameter.h:29
virtual void handle()=0
bool used
Definition: parameter.h:20
virtual bool isRequired()
Definition: parameter.h:55
virtual bool isUsed()
Definition: parameter.h:64
virtual bool understand(const std::string &)=0
virtual unsigned int valuePosition(const std::string &)=0