MIPI - Physical Interface for MIDI Files
Loading...
Searching...
No Matches
Options.h
Go to the documentation of this file.
1//
2// Copyright 1998-2018 by Craig Stuart Sapp, All Rights Reserved.
3// Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu>
4// Creation Date: Sun Apr 5 13:07:18 PDT 1998
5// Last Modified: Mon Jan 18 18:25:23 PST 2021 Some cleanup
6// Filename: midifile/include/Options.h
7// Web Address: http://midifile.sapp.org
8// Syntax: C++11
9// vim: ts=3 noexpandtab
10//
11// Description: Interface for command-line options.
12//
13
14#ifndef _OPTIONS_H_INCLUDED
15#define _OPTIONS_H_INCLUDED
16
17#include <iostream>
18#include <map>
19#include <string>
20#include <vector>
21
22#define OPTION_TYPE_unknown '\0'
23#define OPTION_TYPE_boolean 'b'
24#define OPTION_TYPE_char 'c'
25#define OPTION_TYPE_double 'd'
26#define OPTION_TYPE_float 'f'
27#define OPTION_TYPE_int 'i'
28#define OPTION_TYPE_string 's'
29
30
31namespace smf {
32
34 public:
35 Option_register (void);
36 Option_register (const std::string& aDefinition,
37 char aType,
38 const std::string& aDefaultOption);
39 Option_register (const std::string& aDefinition,
40 char aType,
41 const std::string& aDefaultOption,
42 const std::string& aModifiedOption);
43
45
46 void clearModified (void);
47 const std::string& getDefinition (void);
48 const std::string& getDefault (void);
49 const std::string& getOption (void);
50 const std::string& getModified (void);
51 const std::string& getDescription (void);
52 bool isModified (void);
53 char getType (void);
54 void reset (void);
55 void setDefault (const std::string& aString);
56 void setDefinition (const std::string& aString);
57 void setDescription (const std::string& aString);
58 void setModified (const std::string& aString);
59 void setType (char aType);
60 std::ostream& print (std::ostream& out);
61
62 protected:
63 std::string m_definition;
64 std::string m_description;
65 std::string m_defaultOption;
66 std::string m_modifiedOption;
68 char m_type;
69
70};
71
72
73
74class Options {
75 public:
76 Options (void);
77 Options (int argc, char** argv);
78
79 ~Options ();
80
81 int argc (void) const;
82 const std::vector<std::string>& argv (void) const;
83 int define (const std::string& aDefinition);
84 int define (const std::string& aDefinition,
85 const std::string& description);
86 const std::string& getArg (int index);
87 const std::string& getArgument (int index);
88 int getArgCount (void);
89 int getArgumentCount (void);
90 const std::vector<std::string>& getArgList (void);
91 const std::vector<std::string>& getArgumentList (void);
92 bool getBoolean (const std::string& optionName);
93 std::string getCommand (void);
94 const std::string& getCommandLine (void);
95 std::string getDefinition (const std::string& optionName);
96 double getDouble (const std::string& optionName);
97 char getFlag (void);
98 char getChar (const std::string& optionName);
99 float getFloat (const std::string& optionName);
100 int getInt (const std::string& optionName);
101 int getInteger (const std::string& optionName);
102 std::string getString (const std::string& optionName);
103 char getType (const std::string& optionName);
104 int optionsArg (void);
105 std::ostream& print (std::ostream& out);
106 std::ostream& printOptionList (std::ostream& out);
107 std::ostream& printOptionListBooleanState(std::ostream& out);
108 void process (int error_check = 1, int suppress = 0);
109 void process (int argc, char** argv, int error_check = 1,
110 int suppress = 0);
111 void reset (void);
112 void xverify (int argc, char** argv,
113 int error_check = 1,
114 int suppress = 0);
115 void xverify (int error_check = 1, int suppress = 0);
116 void setFlag (char aFlag);
117 void setModified (const std::string& optionName,
118 const std::string& optionValue);
119 void setOptions (int argc, char** argv);
120 void appendOptions (int argc, char** argv);
121 void appendOptions (const std::string& strang);
122 void appendOptions (const std::vector<std::string>& argv);
123 std::ostream& printRegister (std::ostream& out);
124 bool isDefined (const std::string& name);
125
126 protected:
127 int m_options_error_check; // verify command
129 std::vector<std::string> m_oargv;
130 std::string m_commandString;
132 std::vector<std::string> m_argument;
133
134 std::vector<Option_register*> m_optionRegister;
135 std::map<std::string, int> m_optionList;
136
138 bool m_suppressQ; // prevent --options
139 bool m_optionsArgument; // --options present
140
141 std::vector<std::string> m_extraArgv;
142 std::vector<std::string> m_extraArgv_strings;
143
144 private:
145 int getRegIndex (const std::string& optionName);
146 int optionQ (const std::string& aString, int& argp);
147 int storeOption (int gargp, int& position, int& running);
148
149};
150
151} // end of namespace smf
152
153
154#endif /* _OPTIONS_H_INCLUDED */
155
156
157
Definition Options.h:33
const std::string & getOption(void)
Definition Options.cpp:158
void setDescription(const std::string &aString)
Definition Options.cpp:210
void clearModified(void)
Definition Options.cpp:76
std::string m_definition
Definition Options.h:63
const std::string & getDescription(void)
Definition Options.cpp:101
Option_register(void)
Definition Options.cpp:36
bool isModified(void)
Definition Options.cpp:135
std::string m_modifiedOption
Definition Options.h:66
void reset(void)
Definition Options.cpp:174
void setType(char aType)
Definition Options.cpp:233
const std::string & getDefault(void)
Definition Options.cpp:112
std::string m_description
Definition Options.h:64
char getType(void)
Definition Options.cpp:146
const std::string & getDefinition(void)
Definition Options.cpp:89
std::string m_defaultOption
Definition Options.h:65
char m_type
Definition Options.h:68
std::ostream & print(std::ostream &out)
Definition Options.cpp:245
void setModified(const std::string &aString)
Definition Options.cpp:221
bool m_modifiedQ
Definition Options.h:67
void setDefault(const std::string &aString)
Definition Options.cpp:188
void setDefinition(const std::string &aString)
Definition Options.cpp:199
~Option_register()
Definition Options.cpp:65
const std::string & getModified(void)
Definition Options.cpp:123
Definition Options.h:74
int define(const std::string &aDefinition)
Definition Options.cpp:342
const std::vector< std::string > & getArgumentList(void)
Definition Options.cpp:494
int optionsArg(void)
Definition Options.cpp:651
int optionQ(const std::string &aString, int &argp)
Definition Options.cpp:1051
void process(int error_check=1, int suppress=0)
Definition Options.cpp:936
bool m_processedQ
Definition Options.h:137
std::string getString(const std::string &optionName)
Definition Options.cpp:634
Options(void)
Definition Options.cpp:268
const std::string & getArg(int index)
Definition Options.cpp:448
int getArgCount(void)
Definition Options.cpp:470
std::vector< std::string > m_argument
Definition Options.h:132
std::ostream & print(std::ostream &out)
Definition Options.cpp:662
bool m_suppressQ
Definition Options.h:138
int argc(void) const
Definition Options.cpp:313
int m_options_error_check
Definition Options.h:127
int getArgumentCount(void)
Definition Options.cpp:476
void xverify(int argc, char **argv, int error_check=1, int suppress=0)
Definition Options.cpp:997
char m_optionFlag
Definition Options.h:131
int getInteger(const std::string &optionName)
Definition Options.cpp:623
std::vector< std::string > m_extraArgv
Definition Options.h:141
int storeOption(int gargp, int &position, int &running)
Definition Options.cpp:1082
int m_oargc
Definition Options.h:128
bool isDefined(const std::string &name)
Definition Options.cpp:436
const std::string & getCommandLine(void)
Definition Options.cpp:538
std::ostream & printOptionList(std::ostream &out)
Definition Options.cpp:1179
const std::string & getArgument(int index)
Definition Options.cpp:458
void reset(void)
Definition Options.cpp:677
std::string m_commandString
Definition Options.h:130
int getInt(const std::string &optionName)
Definition Options.cpp:619
std::string getCommand(void)
Definition Options.cpp:522
float getFloat(const std::string &optionName)
Definition Options.cpp:606
bool getBoolean(const std::string &optionName)
Definition Options.cpp:506
int getRegIndex(const std::string &optionName)
Definition Options.cpp:1017
char getFlag(void)
Definition Options.cpp:701
std::map< std::string, int > m_optionList
Definition Options.h:135
std::string getDefinition(const std::string &optionName)
Definition Options.cpp:564
void setFlag(char aFlag)
Definition Options.cpp:715
std::ostream & printRegister(std::ostream &out)
Definition Options.cpp:1208
char getChar(const std::string &optionName)
Definition Options.cpp:594
std::vector< std::string > m_extraArgv_strings
Definition Options.h:142
double getDouble(const std::string &optionName)
Definition Options.cpp:582
std::ostream & printOptionListBooleanState(std::ostream &out)
Definition Options.cpp:1193
void appendOptions(int argc, char **argv)
Definition Options.cpp:769
void setOptions(int argc, char **argv)
Definition Options.cpp:744
const std::vector< std::string > & getArgList(void)
Definition Options.cpp:488
std::vector< std::string > m_oargv
Definition Options.h:129
std::vector< Option_register * > m_optionRegister
Definition Options.h:134
char getType(const std::string &optionName)
Definition Options.cpp:913
void setModified(const std::string &optionName, const std::string &optionValue)
Definition Options.cpp:726
bool m_optionsArgument
Definition Options.h:139
const std::vector< std::string > & argv(void) const
Definition Options.cpp:324
~Options()
Definition Options.cpp:302
Definition Binasc.h:22