CoinUtils
2.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CoinUtils
src
CoinParam.hpp
Go to the documentation of this file.
1
/* $Id: CoinParam.hpp 1493 2011-11-01 16:56:07Z tkr $ */
2
#ifndef CoinParam_H
3
#define CoinParam_H
4
5
/*
6
Copyright (C) 2002, International Business Machines
7
Corporation and others. All Rights Reserved.
8
9
This code is licensed under the terms of the Eclipse Public License (EPL).
10
*/
11
16
#include <vector>
17
#include <string>
18
#include <cstdio>
19
75
class
CoinParam
76
{
77
78
public
:
79
82
95
typedef
enum
{
coinParamInvalid
= 0,
96
coinParamAct
,
coinParamInt
,
coinParamDbl
,
97
coinParamStr
,
coinParamKwd
}
CoinParamType
;
98
106
typedef
int (*
CoinParamFunc
)(
CoinParam
*param) ;
107
109
116
119
CoinParam
() ;
120
127
CoinParam
(std::string
name
, std::string help,
128
double
lower,
double
upper,
double
dflt = 0.0,
129
bool
display
=
true
) ;
130
135
CoinParam
(std::string
name
, std::string help,
136
int
lower,
int
upper,
int
dflt = 0,
137
bool
display
=
true
) ;
138
153
CoinParam
(std::string
name
, std::string help,
154
std::string firstValue,
int
dflt,
bool
display
=
true
) ;
155
164
CoinParam
(std::string
name
, std::string help,
165
std::string dflt,
bool
display
=
true
) ;
166
169
CoinParam
(std::string
name
, std::string help,
170
bool
display
=
true
) ;
171
174
CoinParam
(
const
CoinParam
&orig) ;
175
178
virtual
CoinParam
*
clone
() ;
179
182
CoinParam
&
operator=
(
const
CoinParam
&rhs) ;
183
186
virtual
~CoinParam
() ;
187
189
192
195
void
appendKwd
(std::string kwd) ;
196
201
int
kwdIndex
(std::string kwd)
const
;
202
206
std::string
kwdVal
()
const
;
207
214
void
setKwdVal
(
int
value,
bool
printIt
=
false
) ;
215
222
void
setKwdVal
(
const
std::string value ) ;
223
227
void
printKwds
()
const
;
228
229
232
void
setStrVal
(std::string value) ;
233
236
std::string
strVal
()
const
;
237
238
241
void
setDblVal
(
double
value) ;
242
245
double
dblVal
()
const
;
246
247
250
void
setIntVal
(
int
value) ;
251
254
int
intVal
()
const
;
255
256
259
inline
void
setShortHelp
(
const
std::string help) {
shortHelp_
= help ; }
260
263
inline
std::string
shortHelp
()
const
{
return
(
shortHelp_
) ; }
264
270
inline
void
setLongHelp
(
const
std::string help) {
longHelp_
= help ; }
271
274
inline
std::string
longHelp
()
const
{
return
(
longHelp_
) ; }
275
284
void
printLongHelp
()
const
;
285
287
290
293
inline
CoinParamType
type
()
const
{
return
(
type_
) ; }
294
297
inline
void
setType
(
CoinParamType
type
) {
type_
=
type
; }
298
301
inline
std::string
name
()
const
{
return
(
name_
) ; }
302
305
inline
void
setName
(std::string
name
) {
name_
=
name
;
processName
() ; }
306
314
int
matches
(std::string input)
const
;
315
322
std::string
matchName
()
const
;
323
330
inline
void
setDisplay
(
bool
display
) {
display_
=
display
; }
331
334
inline
bool
display
()
const
{
return
(
display_
) ; }
335
338
inline
CoinParamFunc
pushFunc
() {
return
(
pushFunc_
) ; }
339
342
inline
void
setPushFunc
(
CoinParamFunc
func) {
pushFunc_
= func ; }
343
346
inline
CoinParamFunc
pullFunc
() {
return
(
pullFunc_
) ; }
347
350
inline
void
setPullFunc
(
CoinParamFunc
func) {
pullFunc_
= func ; }
351
353
354
private
:
355
358
360
void
processName
() ;
361
363
366
CoinParamType
type_
;
368
370
std::string
name_
;
371
373
size_t
lengthName_
;
374
378
size_t
lengthMatch_
;
379
381
double
lowerDblValue_
;
382
384
double
upperDblValue_
;
385
387
double
dblValue_
;
388
390
int
lowerIntValue_
;
391
393
int
upperIntValue_
;
394
396
int
intValue_
;
397
399
std::string
strValue_
;
400
402
std::vector<std::string>
definedKwds_
;
403
406
int
currentKwd_
;
407
409
CoinParamFunc
pushFunc_
;
410
412
CoinParamFunc
pullFunc_
;
413
415
std::string
shortHelp_
;
416
418
std::string
longHelp_
;
419
421
bool
display_
;
423
424
} ;
425
429
typedef
std::vector<CoinParam*>
CoinParamVec
;
430
434
std::ostream &
operator<<
(std::ostream &s,
const
CoinParam
¶m) ;
435
436
/*
437
Bring in the utility functions for parameter handling (CbcParamUtils).
438
*/
439
447
namespace
CoinParamUtils {
453
void
setInputSrc
(FILE *src) ;
454
458
bool
isCommandLine
() ;
459
463
bool
isInteractive
() ;
464
472
std::string
getStringField
(
int
argc,
const
char
*argv[],
int
*valid) ;
473
481
int
getIntField
(
int
argc,
const
char
*argv[],
int
*valid) ;
482
490
double
getDoubleField
(
int
argc,
const
char
*argv[],
int
*valid) ;
491
504
int
matchParam
(
const
CoinParamVec ¶mVec, std::string name,
505
int
&matchNdx,
int
&shortCnt) ;
506
537
std::string
getCommand
(
int
argc,
const
char
*argv[],
538
const
std::string prompt, std::string *pfx = 0) ;
539
577
int
lookupParam
(std::string name, CoinParamVec ¶mVec,
578
int
*matchCnt = 0,
int
*shortCnt = 0,
int
*queryCnt = 0) ;
579
587
void
printIt
(
const
char
*msg) ;
588
void
shortOrHelpOne
(CoinParamVec ¶mVec,
int
matchNdx, std::string
605
name,
int
numQuery) ;
606
615
void
shortOrHelpMany
(CoinParamVec ¶mVec,
616
std::string name,
int
numQuery) ;
617
623
void
printGenericHelp
() ;
624
637
void
printHelp
(CoinParamVec ¶mVec,
int
firstParam,
int
lastParam,
638
std::string prefix,
639
bool
shortHelp,
bool
longHelp,
bool
hidden) ;
640
}
641
642
643
#endif
/* CoinParam_H */
644
Generated by
1.8.4