NCBI C++ ToolKit
ncbiargs_p.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: ncbiargs_p.hpp 85031 2019-01-09 15:48:37Z gouriano $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Denis Vakatov
27  *
28  * File Description:
29  * PRIVATE header -- for inclusion by "ncbiargs.cpp" only!
30  * Command-line arguments' processing:
31  * descriptions -- CArgDescriptions, CArgDesc
32  * constraints -- CArgAllow; CArgAllow_{Strings,Integers,Int8s,Doubles}
33  * parsed values -- CArgs, CArgValue
34  * exceptions -- CArgException, ARG_THROW()
35  *
36  */
37 
38 
39 #if !defined(NCBIARGS__CPP)
40 # error "PRIVATE header -- for inclusion by ncbiargs.cpp only!"
41 #endif
42 
43 
44 /////////////////////////////////////////////////////////////////////////////
45 /////////////////////////////////////////////////////////////////////////////
46 // CArg_***:: classes representing various types of argument value
47 //
48 // CArg_NoValue : CArgValue
49 //
50 // CArg_String : CArgValue
51 //
52 // CArg_Alnum : CArg_String
53 // CArg_Int8 : CArg_String
54 // CArg_Integer : CArg_Int8
55 // CArg_IntIds : CArg_Int8
56 // CArg_DataSize : CArg_String
57 // CArg_Double : CArg_String
58 // CArg_Boolean : CArg_String
59 // CArg_InputFile : CArg_String
60 // CArg_OutputFile : CArg_String
61 // CArg_IOFile : CArg_String
62 // CArg_Dir : CArg_String
63 // CArg_DateTime : CArg_String
64 //
65 
66 
67 class CArg_NoValue : public CArgValue
68 {
69 public:
70  CArg_NoValue(const string& name);
71  virtual bool HasValue(void) const;
72 
73  virtual const string& AsString (void) const;
74  virtual Int8 AsInt8 (void) const;
75  virtual int AsInteger(void) const;
76  virtual TIntId AsIntId (void) const;
77  virtual double AsDouble (void) const;
78  virtual bool AsBoolean(void) const;
79  virtual const CDir& AsDirectory(void) const;
80  virtual const CTime& AsDateTime(void) const;
81 
82  virtual CNcbiIstream& AsInputFile (TFileFlags flags = 0) const;
83  virtual CNcbiOstream& AsOutputFile(TFileFlags flags = 0) const;
84  virtual CNcbiIostream& AsIOFile(TFileFlags flags = 0) const;
85  virtual void CloseFile (void) const;
86 };
87 
88 
89 // Generates error (like CArg_NoValue) for excluded arguments.
91 {
92 public:
93  CArg_ExcludedValue(const string& name);
94  virtual bool HasValue(void) const;
95 
96  virtual const string& AsString (void) const;
97  virtual Int8 AsInt8 (void) const;
98  virtual int AsInteger(void) const;
99  virtual TIntId AsIntId (void) const;
100  virtual double AsDouble (void) const;
101  virtual bool AsBoolean(void) const;
102  virtual const CDir& AsDirectory(void) const;
103  virtual const CTime& AsDateTime(void) const;
104 
105  virtual CNcbiIstream& AsInputFile (TFileFlags flags = 0) const;
106  virtual CNcbiOstream& AsOutputFile(TFileFlags flags = 0) const;
107  virtual CNcbiIostream& AsIOFile(TFileFlags flags = 0) const;
108  virtual void CloseFile (void) const;
109 };
110 
111 
112 class CArg_String : public CArgValue
113 {
114 public:
115  CArg_String(const string& name, const string& value);
116  virtual bool HasValue(void) const;
117 
118  virtual const string& AsString (void) const;
119  virtual Int8 AsInt8 (void) const;
120  virtual int AsInteger(void) const;
121  virtual TIntId AsIntId (void) const;
122  virtual double AsDouble (void) const;
123  virtual bool AsBoolean(void) const;
124  virtual const CDir& AsDirectory(void) const;
125  virtual const CTime& AsDateTime(void) const;
126 
127  virtual CNcbiIstream& AsInputFile (TFileFlags flags = 0) const;
128  virtual CNcbiOstream& AsOutputFile(TFileFlags flags = 0) const;
129  virtual CNcbiIostream& AsIOFile(TFileFlags flags = 0) const;
130  virtual void CloseFile (void) const;
131 
132  virtual const TStringArray& GetStringList() const;
133  virtual TStringArray& SetStringList();
134 
135 private:
136  /// Value of the argument as passed to the constructor ("value")
137  /// becomes the first element in the value list
138  /// AsString() and other methods then use it
140 };
141 
142 
143 
144 class CArg_Int8 : public CArg_String
145 {
146 public:
147  CArg_Int8(const string& name, const string& value);
148  virtual Int8 AsInt8(void) const;
149  /// An Int8 argument can be used as an integer id only if NCBI_INT8_GI is defined.
150  virtual TIntId AsIntId(void) const;
151 protected:
153 };
154 
155 
156 
157 class CArg_Integer : public CArg_Int8
158 {
159 public:
160  CArg_Integer(const string& name, const string& value);
161  virtual int AsInteger(void) const;
162  /// An integer argument can also be used as an integer id.
163  virtual TIntId AsIntId(void) const;
164 };
165 
166 
167 class CArg_IntId : public CArg_Int8
168 {
169 public:
170  CArg_IntId(const string& name, const string& value);
171  /// An IntId argument can be used as an integer only if NCBI_INT8_GI is not defined.
172  /// Otherwise an exception will be thrown.
173  virtual int AsInteger(void) const;
174  virtual TIntId AsIntId(void) const;
175 };
176 
177 
179 {
180 public:
181  CArg_DataSize(const string& name, const string& value);
182  virtual Int8 AsInt8(void) const;
183 protected:
185 };
186 
187 
188 
189 class CArg_Double : public CArg_String
190 {
191 public:
192  CArg_Double(const string& name, const string& value);
193  virtual double AsDouble(void) const;
194 private:
195  double m_Double;
196 };
197 
198 
199 
200 class CArg_Boolean : public CArg_String
201 {
202 public:
203  CArg_Boolean(const string& name, bool value);
204  CArg_Boolean(const string& name, const string& value);
205  virtual bool AsBoolean(void) const;
206 private:
207  bool m_Boolean;
208 };
209 
210 
211 
212 class CArg_Flag : public CArg_Boolean
213 {
214 public:
215  CArg_Flag(const string& name, bool value);
216  virtual bool HasValue(void) const;
217 };
218 
219 
220 class CArg_Dir : public CArg_String
221 {
222 public:
223  CArg_Dir(const string& name, const string& value,
225  virtual ~CArg_Dir(void);
226  virtual const CDir& AsDirectory() const;
227 protected:
230 };
231 
232 
234 {
235 public:
236  CArg_DateTime(const string& name, const string& value);
237  virtual const CTime& AsDateTime() const;
238 protected:
240 };
241 
242 
243 class CArg_Ios : public CArg_String
244 {
245 public:
246  CArg_Ios(const string& name, const string& value,
248  virtual ~CArg_Ios(void);
249 
250  virtual CNcbiIstream& AsInputFile( TFileFlags flags = 0) const;
251  virtual CNcbiOstream& AsOutputFile( TFileFlags flags = 0) const;
252  virtual CNcbiIostream& AsIOFile( TFileFlags flags = 0) const;
253 
254  virtual void CloseFile(void) const;
255  static IOS_BASE::openmode IosMode(TFileFlags flags);
256 
257 protected:
258  virtual void x_Open(TFileFlags flags) const;
259  bool x_CreatePath(TFileFlags flags) const;
260 
263  mutable CNcbiIos* m_Ios;
264  mutable bool m_DeleteFlag;
266 };
267 
268 
269 class CArg_InputFile : public CArg_Ios
270 {
271 public:
272  CArg_InputFile(const string& name, const string& value,
274 protected:
275  virtual void x_Open(TFileFlags flags) const;
276 };
277 
278 
279 
280 class CArg_OutputFile : public CArg_Ios
281 {
282 public:
283  CArg_OutputFile(const string& name, const string& value,
285 protected:
286  virtual void x_Open(TFileFlags flags) const;
287 };
288 
289 
290 
291 class CArg_IOFile : public CArg_Ios
292 {
293 public:
294  CArg_IOFile(const string& name, const string& value,
296 protected:
297  virtual void x_Open(TFileFlags flags) const;
298 };
299 
300 
301 /////////////////////////////////////////////////////////////////////////////
302 /////////////////////////////////////////////////////////////////////////////
303 // CArgDesc***:: abstract base classes for argument descriptions
304 //
305 // CArgDesc
306 //
307 // CArgDescMandatory : CArgDesc
308 // CArgDescOptional : virtual CArgDescMandatory
309 // CArgDescDefault : virtual CArgDescOptional
310 //
311 // CArgDescSynopsis
312 //
313 
314 
315 
317 {
318 public:
319  CArgDescMandatory(const string& name,
320  const string& comment,
323  virtual ~CArgDescMandatory(void);
324 
325  CArgDescriptions::EType GetType (void) const { return m_Type; }
326 
327  virtual string GetUsageSynopsis(bool name_only = false) const = 0;
328  virtual string GetUsageCommentAttr(void) const;
329 
330  virtual CArgValue* ProcessArgument(const string& value) const;
331  virtual CArgValue* ProcessDefault(void) const;
332 
333  virtual
334  void SetConstraint(const CArgAllow* constraint,
336  virtual const CArgAllow* GetConstraint(void) const;
337  virtual bool IsConstraintInverted() const;
338 
339  virtual const CArgErrorHandler* GetErrorHandler(void) const
340  { return m_ErrorHandler.GetPointerOrNull(); }
343 
344 private:
349 };
350 
351 
352 class CArgDescOptional : virtual public CArgDescMandatory
353 {
354 public:
355  CArgDescOptional(const string& name,
356  const string& comment,
359  virtual ~CArgDescOptional(void);
360  virtual CArgValue* ProcessDefault(void) const;
361  virtual size_t GetGroup(void) const { return m_Group; }
362  virtual void SetGroup(size_t group) { m_Group = group; }
363 
364 private:
365  size_t m_Group;
366 };
367 
368 
369 
370 class CArgDescDefault : virtual public CArgDescOptional
371 {
372 public:
373  CArgDescDefault(const string& name,
374  const string& comment,
377  const string& default_value,
378  const string& env_var,
379  const char* display_value);
380  virtual ~CArgDescDefault(void);
381 
382  const string& GetDefaultValue(void) const;
383  const string& GetDisplayValue(void) const;
384 
385  virtual CArgValue* ProcessDefault(void) const;
386  virtual void VerifyDefault (void) const;
387 
388 private:
390  string m_EnvVar;
393 };
394 
395 
396 
398 {
399 public:
400  CArgDescSynopsis(const string& synopsis);
401  const string& GetSynopsis(void) const { return m_Synopsis; }
402 private:
403  string m_Synopsis;
404 };
405 
406 
407 
408 
409 /////////////////////////////////////////////////////////////////////////////
410 /////////////////////////////////////////////////////////////////////////////
411 // CArgDesc_***:: classes for argument descriptions
412 //
413 // CArgDesc_Flag : CArgDesc
414 //
415 // CArgDesc_Pos : virtual CArgDescMandatory
416 // CArgDesc_PosOpt : virtual CArgDescOptional, CArgDesc_Pos
417 // CArgDesc_PosDef : CArgDescDefault, CArgDesc_PosOpt
418 //
419 // CArgDescSynopsis
420 //
421 // CArgDesc_Key : CArgDesc_Pos, CArgDescSynopsis
422 // CArgDesc_KeyOpt : CArgDesc_PosOpt, CArgDescSynopsis
423 // CArgDesc_KeyDef : CArgDesc_PosDef, CArgDescSynopsis
424 //
425 
426 
427 class CArgDesc_Flag : public CArgDesc
428 {
429 public:
430  CArgDesc_Flag(const string& name,
431  const string& comment,
432  bool set_value,
434  virtual ~CArgDesc_Flag(void);
435 
436  virtual string GetUsageSynopsis(bool name_only = false) const;
437  virtual string GetUsageCommentAttr(void) const;
438 
439  virtual CArgValue* ProcessArgument(const string& value) const;
440  virtual CArgValue* ProcessDefault(void) const;
441  virtual size_t GetGroup(void) const { return m_Group; }
442  virtual void SetGroup(size_t group) { m_Group = group; }
443 
444  bool GetSetValue(void) const { return m_SetValue;}
445 
446 private:
447  size_t m_Group;
448  bool m_SetValue; // value to set if the arg is provided
449 };
450 
451 
452 
453 class CArgDesc_Pos : virtual public CArgDescMandatory
454 {
455 public:
456  CArgDesc_Pos(const string& name,
457  const string& comment,
460  virtual ~CArgDesc_Pos(void);
461  virtual string GetUsageSynopsis(bool name_only = false) const;
462 };
463 
464 
465 
466 class CArgDesc_Opening : virtual public CArgDescMandatory
467 {
468 public:
469  CArgDesc_Opening(const string& name,
470  const string& comment,
473  virtual ~CArgDesc_Opening(void);
474  virtual string GetUsageSynopsis(bool name_only = false) const;
475 };
476 
477 
478 
479 class CArgDesc_PosOpt : virtual public CArgDescOptional,
480  public CArgDesc_Pos
481 {
482 public:
483  CArgDesc_PosOpt(const string& name,
484  const string& comment,
487  virtual ~CArgDesc_PosOpt(void);
488 };
489 
490 
491 
493  public CArgDesc_PosOpt
494 {
495 public:
496  CArgDesc_PosDef(const string& name,
497  const string& comment,
500  const string& default_value,
501  const string& env_var,
502  const char* display_value);
503  virtual ~CArgDesc_PosDef(void);
504 };
505 
506 
507 
509 {
510 public:
511  CArgDesc_Key(const string& name,
512  const string& comment,
515  const string& synopsis);
516  virtual ~CArgDesc_Key(void);
517  virtual string GetUsageSynopsis(bool name_only = false) const;
518 };
519 
520 
521 
523 {
524 public:
525  CArgDesc_KeyOpt(const string& name,
526  const string& comment,
529  const string& synopsis);
530  virtual ~CArgDesc_KeyOpt(void);
531  virtual string GetUsageSynopsis(bool name_only = false) const;
532 };
533 
534 
535 
537 {
538 public:
539  CArgDesc_KeyDef(const string& name,
540  const string& comment,
543  const string& synopsis,
544  const string& default_value,
545  const string& env_var,
546  const char* display_value);
547  virtual ~CArgDesc_KeyDef(void);
548  virtual string GetUsageSynopsis(bool name_only = false) const;
549 };
550 
551 
552 // Special case - arg synonym. Can be used e.g. to create short and
553 // long argument names.
554 
555 class CArgDesc_Alias : public CArgDesc
556 {
557 public:
558  // Create an argument alias.
559  // alias is a new name for the existing argument, arg_name is
560  // its original name. Any search functions will return the original
561  // argument rather than the alias.
562  CArgDesc_Alias(const string& alias,
563  const string& arg_name,
564  const string& comment);
565  virtual ~CArgDesc_Alias(void);
566 
567  const string& GetAliasedName(void) const;
568 
569  // Dummy methods - to make the class not abstract
570  virtual string GetUsageSynopsis(bool name_only) const;
571  virtual string GetUsageCommentAttr(void) const;
572  virtual CArgValue* ProcessArgument(const string& value) const;
573  virtual CArgValue* ProcessDefault(void) const;
574 
576  bool GetNegativeFlag(void) const { return m_NegativeFlag; }
577 private:
578  string m_ArgName;
580 };
CArgAllow –.
Definition: ncbiargs.hpp:1488
virtual ~CArgDescDefault(void)
Definition: ncbiargs.cpp:1351
virtual void VerifyDefault(void) const
Verify argument default value.
Definition: ncbiargs.cpp:1383
const string & GetDisplayValue(void) const
Definition: ncbiargs.cpp:1368
string m_DisplayValue
Definition: ncbiargs_p.hpp:391
const string & GetDefaultValue(void) const
Definition: ncbiargs.cpp:1356
CArgDescDefault(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags, const string &default_value, const string &env_var, const char *display_value)
Definition: ncbiargs.cpp:1332
virtual CArgValue * ProcessDefault(void) const
Process argument default.
Definition: ncbiargs.cpp:1373
string m_DefaultValue
Definition: ncbiargs_p.hpp:389
CRef< CArgErrorHandler > m_ErrorHandler
Definition: ncbiargs_p.hpp:348
virtual string GetUsageSynopsis(bool name_only=false) const =0
Get usage synopsis.
virtual CArgValue * ProcessArgument(const string &value) const
Process argument with specified value.
Definition: ncbiargs.cpp:1177
CArgDescriptions::EConstraintNegate m_NegateConstraint
Definition: ncbiargs_p.hpp:347
CArgDescriptions::EType GetType(void) const
Definition: ncbiargs_p.hpp:325
virtual string GetUsageCommentAttr(void) const
Get usage comment attribute.
Definition: ncbiargs.cpp:1158
CConstRef< CArgAllow > m_Constraint
Definition: ncbiargs_p.hpp:346
CArgDescriptions::EType m_Type
Definition: ncbiargs_p.hpp:345
virtual bool IsConstraintInverted() const
Returns TRUE if associated constraint is inverted (NOT)
Definition: ncbiargs.cpp:1293
virtual const CArgAllow * GetConstraint(void) const
Get argument constraint.
Definition: ncbiargs.cpp:1287
virtual void SetConstraint(const CArgAllow *constraint, CArgDescriptions::EConstraintNegate negate)
Set argument constraint.
Definition: ncbiargs.cpp:1279
virtual void SetErrorHandler(CArgErrorHandler *err_handler)
Set error handler for the argument.
Definition: ncbiargs_p.hpp:341
virtual const CArgErrorHandler * GetErrorHandler(void) const
Get error handler for the argument.
Definition: ncbiargs_p.hpp:339
virtual CArgValue * ProcessDefault(void) const
Process argument default.
Definition: ncbiargs.cpp:1270
CArgDescMandatory(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1109
virtual ~CArgDescMandatory(void)
Definition: ncbiargs.cpp:1152
virtual void SetGroup(size_t group)
Set argument group.
Definition: ncbiargs_p.hpp:362
virtual size_t GetGroup(void) const
Get argument group.
Definition: ncbiargs_p.hpp:361
virtual ~CArgDescOptional(void)
Definition: ncbiargs.cpp:1314
virtual CArgValue * ProcessDefault(void) const
Process argument default.
Definition: ncbiargs.cpp:1320
CArgDescOptional(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1303
const string & GetSynopsis(void) const
Definition: ncbiargs_p.hpp:401
CArgDescSynopsis(const string &synopsis)
Definition: ncbiargs.cpp:1401
virtual string GetUsageCommentAttr(void) const
Get usage comment attribute.
Definition: ncbiargs.cpp:1726
virtual string GetUsageSynopsis(bool name_only) const
Get usage synopsis.
Definition: ncbiargs.cpp:1720
void SetNegativeFlag(bool value)
Definition: ncbiargs_p.hpp:575
const string & GetAliasedName(void) const
Definition: ncbiargs.cpp:1714
virtual CArgValue * ProcessArgument(const string &value) const
Process argument with specified value.
Definition: ncbiargs.cpp:1732
virtual ~CArgDesc_Alias(void)
Definition: ncbiargs.cpp:1709
CArgDesc_Alias(const string &alias, const string &arg_name, const string &comment)
Definition: ncbiargs.cpp:1699
bool GetNegativeFlag(void) const
Definition: ncbiargs_p.hpp:576
virtual CArgValue * ProcessDefault(void) const
Process argument default.
Definition: ncbiargs.cpp:1738
virtual ~CArgDesc_Flag(void)
Definition: ncbiargs.cpp:1446
CArgDesc_Flag(const string &name, const string &comment, bool set_value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1433
virtual size_t GetGroup(void) const
Get argument group.
Definition: ncbiargs_p.hpp:441
virtual CArgValue * ProcessArgument(const string &value) const
Process argument with specified value.
Definition: ncbiargs.cpp:1464
virtual string GetUsageCommentAttr(void) const
Get usage comment attribute.
Definition: ncbiargs.cpp:1458
bool GetSetValue(void) const
Definition: ncbiargs_p.hpp:444
virtual void SetGroup(size_t group)
Set argument group.
Definition: ncbiargs_p.hpp:442
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1452
virtual CArgValue * ProcessDefault(void) const
Process argument default.
Definition: ncbiargs.cpp:1474
CArgDesc_KeyDef(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags, const string &synopsis, const string &default_value, const string &env_var, const char *display_value)
Definition: ncbiargs.cpp:1667
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1690
virtual ~CArgDesc_KeyDef(void)
Definition: ncbiargs.cpp:1684
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1656
virtual ~CArgDesc_KeyOpt(void)
Definition: ncbiargs.cpp:1650
CArgDesc_KeyOpt(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags, const string &synopsis)
Definition: ncbiargs.cpp:1636
CArgDesc_Key(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags, const string &synopsis)
Definition: ncbiargs.cpp:1592
virtual ~CArgDesc_Key(void)
Definition: ncbiargs.cpp:1605
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1625
virtual ~CArgDesc_Opening(void)
Definition: ncbiargs.cpp:1525
CArgDesc_Opening(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1515
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1531
CArgDesc_PosDef(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags, const string &default_value, const string &env_var, const char *display_value)
Definition: ncbiargs.cpp:1565
virtual ~CArgDesc_PosDef(void)
Definition: ncbiargs.cpp:1581
virtual ~CArgDesc_PosOpt(void)
Definition: ncbiargs.cpp:1554
CArgDesc_PosOpt(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1542
virtual string GetUsageSynopsis(bool name_only=false) const
Get usage synopsis.
Definition: ncbiargs.cpp:1505
CArgDesc_Pos(const string &name, const string &comment, CArgDescriptions::EType type, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:1489
virtual ~CArgDesc_Pos(void)
Definition: ncbiargs.cpp:1499
CArgDesc –.
Definition: ncbiargs.hpp:1825
CArgErrorHandler –.
Definition: ncbiargs.hpp:506
CArgValue –.
Definition: ncbiargs.hpp:184
virtual bool AsBoolean(void) const
Get the argument's boolean value.
Definition: ncbiargs.cpp:500
CArg_Boolean(const string &name, bool value)
Definition: ncbiargs.cpp:482
CArg_DataSize(const string &name, const string &value)
Definition: ncbiargs.cpp:440
virtual Int8 AsInt8(void) const
Get the argument's integer (8-byte long) value.
Definition: ncbiargs.cpp:451
virtual const CTime & AsDateTime() const
Get the argument as a DateTime.
Definition: ncbiargs.cpp:571
CArg_DateTime(const string &name, const string &value)
Definition: ncbiargs.cpp:543
CArg_Dir(const string &name, const string &value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:522
CDir m_Dir
Definition: ncbiargs_p.hpp:228
TFileFlags m_DescriptionFlags
Definition: ncbiargs_p.hpp:229
virtual const CDir & AsDirectory() const
Get the argument as a directory.
Definition: ncbiargs.cpp:532
virtual ~CArg_Dir(void)
Definition: ncbiargs.cpp:528
double m_Double
Definition: ncbiargs_p.hpp:195
virtual double AsDouble(void) const
Get the argument's double value.
Definition: ncbiargs.cpp:472
CArg_Double(const string &name, const string &value)
Definition: ncbiargs.cpp:460
virtual double AsDouble(void) const
Get the argument's double value.
Definition: ncbiargs.cpp:253
virtual const CDir & AsDirectory(void) const
Get the argument as a directory.
Definition: ncbiargs.cpp:255
virtual CNcbiIstream & AsInputFile(TFileFlags flags=0) const
Get the argument as an input file stream.
Definition: ncbiargs.cpp:257
virtual CNcbiIostream & AsIOFile(TFileFlags flags=0) const
Get the argument as a file stream.
Definition: ncbiargs.cpp:259
virtual bool AsBoolean(void) const
Get the argument's boolean value.
Definition: ncbiargs.cpp:254
virtual Int8 AsInt8(void) const
Get the argument's integer (8-byte long) value.
Definition: ncbiargs.cpp:250
virtual bool HasValue(void) const
Check if argument holds a value.
Definition: ncbiargs.cpp:239
virtual TIntId AsIntId(void) const
Get the argument's value as an integer id (TIntId).
Definition: ncbiargs.cpp:252
virtual const string & AsString(void) const
Get the argument's string value.
Definition: ncbiargs.cpp:249
virtual void CloseFile(void) const
Close the file.
Definition: ncbiargs.cpp:260
virtual int AsInteger(void) const
Get the argument's integer value.
Definition: ncbiargs.cpp:251
virtual CNcbiOstream & AsOutputFile(TFileFlags flags=0) const
Get the argument as an output file stream.
Definition: ncbiargs.cpp:258
CArg_ExcludedValue(const string &name)
Definition: ncbiargs.cpp:232
virtual const CTime & AsDateTime(void) const
Get the argument as a DateTime.
Definition: ncbiargs.cpp:256
CArg_Flag(const string &name, bool value)
Definition: ncbiargs.cpp:509
virtual bool HasValue(void) const
Check if argument holds a value.
Definition: ncbiargs.cpp:513
virtual void x_Open(TFileFlags flags) const
Definition: ncbiargs.cpp:817
CArg_IOFile(const string &name, const string &value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:807
virtual void x_Open(TFileFlags flags) const
Definition: ncbiargs.cpp:695
CArg_InputFile(const string &name, const string &value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:686
virtual Int8 AsInt8(void) const
Get the argument's integer (8-byte long) value.
Definition: ncbiargs.cpp:363
CArg_Int8(const string &name, const string &value)
Definition: ncbiargs.cpp:351
Int8 m_Integer
Definition: ncbiargs_p.hpp:152
virtual TIntId AsIntId(void) const
An Int8 argument can be used as an integer id only if NCBI_INT8_GI is defined.
Definition: ncbiargs.cpp:369
virtual TIntId AsIntId(void) const
An Int8 argument can be used as an integer id only if NCBI_INT8_GI is defined.
Definition: ncbiargs.cpp:431
CArg_IntId(const string &name, const string &value)
Definition: ncbiargs.cpp:408
virtual int AsInteger(void) const
An IntId argument can be used as an integer only if NCBI_INT8_GI is not defined.
Definition: ncbiargs.cpp:420
virtual TIntId AsIntId(void) const
An integer argument can also be used as an integer id.
Definition: ncbiargs.cpp:399
CArg_Integer(const string &name, const string &value)
Definition: ncbiargs.cpp:383
virtual int AsInteger(void) const
Get the argument's integer value.
Definition: ncbiargs.cpp:393
CFastMutex m_AccessMutex
Definition: ncbiargs_p.hpp:265
virtual CNcbiIostream & AsIOFile(TFileFlags flags=0) const
Get the argument as a file stream.
Definition: ncbiargs.cpp:654
bool x_CreatePath(TFileFlags flags) const
Definition: ncbiargs.cpp:623
virtual CNcbiOstream & AsOutputFile(TFileFlags flags=0) const
Get the argument as an output file stream.
Definition: ncbiargs.cpp:643
CArg_Ios(const string &name, const string &value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:595
virtual CNcbiIstream & AsInputFile(TFileFlags flags=0) const
Get the argument as an input file stream.
Definition: ncbiargs.cpp:632
TFileFlags m_DescriptionFlags
Definition: ncbiargs_p.hpp:261
virtual ~CArg_Ios(void)
Definition: ncbiargs.cpp:609
bool m_DeleteFlag
Definition: ncbiargs_p.hpp:264
virtual void CloseFile(void) const
Close the file.
Definition: ncbiargs.cpp:666
virtual void x_Open(TFileFlags flags) const
Definition: ncbiargs.cpp:615
static IOS_BASE::openmode IosMode(TFileFlags flags)
Definition: ncbiargs.cpp:580
TFileFlags m_CurrentFlags
Definition: ncbiargs_p.hpp:262
CNcbiIos * m_Ios
Definition: ncbiargs_p.hpp:263
virtual const string & AsString(void) const
Get the argument's string value.
Definition: ncbiargs.cpp:215
virtual bool HasValue(void) const
Check if argument holds a value.
Definition: ncbiargs.cpp:201
CArg_NoValue(const string &name)
Definition: ncbiargs.cpp:194
virtual Int8 AsInt8(void) const
Get the argument's integer (8-byte long) value.
Definition: ncbiargs.cpp:216
virtual bool AsBoolean(void) const
Get the argument's boolean value.
Definition: ncbiargs.cpp:220
virtual const CTime & AsDateTime(void) const
Get the argument as a DateTime.
Definition: ncbiargs.cpp:222
virtual double AsDouble(void) const
Get the argument's double value.
Definition: ncbiargs.cpp:219
virtual CNcbiOstream & AsOutputFile(TFileFlags flags=0) const
Get the argument as an output file stream.
Definition: ncbiargs.cpp:224
virtual CNcbiIstream & AsInputFile(TFileFlags flags=0) const
Get the argument as an input file stream.
Definition: ncbiargs.cpp:223
virtual CNcbiIostream & AsIOFile(TFileFlags flags=0) const
Get the argument as a file stream.
Definition: ncbiargs.cpp:225
virtual int AsInteger(void) const
Get the argument's integer value.
Definition: ncbiargs.cpp:217
virtual const CDir & AsDirectory(void) const
Get the argument as a directory.
Definition: ncbiargs.cpp:221
virtual TIntId AsIntId(void) const
Get the argument's value as an integer id (TIntId).
Definition: ncbiargs.cpp:218
virtual void CloseFile(void) const
Close the file.
Definition: ncbiargs.cpp:226
CArg_OutputFile(const string &name, const string &value, CArgDescriptions::TFlags flags)
Definition: ncbiargs.cpp:744
virtual void x_Open(TFileFlags flags) const
Definition: ncbiargs.cpp:754
virtual CNcbiIstream & AsInputFile(TFileFlags flags=0) const
Get the argument as an input file stream.
Definition: ncbiargs.cpp:330
TStringArray m_StringList
Value of the argument as passed to the constructor ("value") becomes the first element in the value l...
Definition: ncbiargs_p.hpp:139
virtual bool AsBoolean(void) const
Get the argument's boolean value.
Definition: ncbiargs.cpp:318
virtual TIntId AsIntId(void) const
Get the argument's value as an integer id (TIntId).
Definition: ncbiargs.cpp:308
virtual Int8 AsInt8(void) const
Get the argument's integer (8-byte long) value.
Definition: ncbiargs.cpp:300
CArg_String(const string &name, const string &value)
Definition: ncbiargs.cpp:266
virtual const TStringArray & GetStringList() const
Get the value list.
Definition: ncbiargs.cpp:288
virtual const string & AsString(void) const
Get the argument's string value.
Definition: ncbiargs.cpp:279
virtual CNcbiIostream & AsIOFile(TFileFlags flags=0) const
Get the argument as a file stream.
Definition: ncbiargs.cpp:338
virtual int AsInteger(void) const
Get the argument's integer value.
Definition: ncbiargs.cpp:304
virtual TStringArray & SetStringList()
Get reference on value list for further modification.
Definition: ncbiargs.cpp:294
virtual bool HasValue(void) const
Check if argument holds a value.
Definition: ncbiargs.cpp:273
virtual const CTime & AsDateTime(void) const
Get the argument as a DateTime.
Definition: ncbiargs.cpp:326
virtual double AsDouble(void) const
Get the argument's double value.
Definition: ncbiargs.cpp:314
virtual const CDir & AsDirectory(void) const
Get the argument as a directory.
Definition: ncbiargs.cpp:322
virtual CNcbiOstream & AsOutputFile(TFileFlags flags=0) const
Get the argument as an output file stream.
Definition: ncbiargs.cpp:334
virtual void CloseFile(void) const
Close the file.
Definition: ncbiargs.cpp:342
CDir –.
Definition: ncbifile.hpp:1695
CFastMutex –.
Definition: ncbimtx.hpp:667
CTime –.
Definition: ncbitime.hpp:296
static uch flags
static int err_handler(DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
Int8 TIntId
Definition: ncbimisc.hpp:999
unsigned int TFileFlags
Bitwise OR of "EFileFlags".
Definition: ncbiargs.hpp:270
unsigned int TFlags
Bitwise OR of "EFlags".
Definition: ncbiargs.hpp:676
EType
Available argument types.
Definition: ncbiargs.hpp:588
vector< string > TStringArray
Some values types can contain several value lists.
Definition: ncbiargs.hpp:293
EConstraintNegate
Flag to invert constraint logically.
Definition: ncbiargs.hpp:922
void Reset(void)
Reset reference object.
Definition: ncbiobj.hpp:773
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
Definition: ncbiobj.hpp:986
int64_t Int8
8-byte (64-bit) signed integer
Definition: ncbitype.h:104
uint64_t Uint8
8-byte (64-bit) unsigned integer
Definition: ncbitype.h:105
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
IO_PREFIX::iostream CNcbiIostream
Portable alias for iostream.
Definition: ncbistre.hpp:152
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
Definition: ncbistre.hpp:146
IO_PREFIX::ios CNcbiIos
Portable alias for ios.
Definition: ncbistre.hpp:140
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
Definition: type.c:6
Modified on Tue Apr 23 07:37:07 2024 by modify_doxy.py rev. 669887