DCL 3.7.4
Loading...
Searching...
No Matches
Arguments Class Reference

#include <Arguments.h>

Inheritance diagram for Arguments:
Object MainArguments MainArguments

Public Member Functions

String help () const
String shortUsage () const
String tryUsage () const
String argRequired (const String &_option) const
String usage () const
String version () const
Public Member Functions inherited from Object
virtual String toString () const
virtual void destroy ()
String className () const
bool isInstanceOf (const std::type_info &typeinfo) const
virtual const std::type_info & typeInfo () const

Protected Member Functions

virtual void onOption (int _key, const String &_arg) __DCL_THROWS1(Exception *)
virtual String onValidate ()
Protected Member Functions inherited from Object
virtual ~Object ()
 Object ()

Detailed Description

Definition at line 16 of file Arguments.h.

Member Function Documentation

◆ argRequired()

String Arguments::argRequired ( const String & _option) const

Definition at line 142 of file Arguments.cpp.

143{
144 StringBuilder sb = __value0;
145 sb += L": option '";
146 sb += _option;
147 sb += L"' requires an argument";
148 return sb;
149}

◆ help()

String Arguments::help ( ) const

Definition at line 100 of file Arguments.cpp.

101{
102 StringBuilder sb = shortUsage();
103 if (__doc) {
104 sb += L'\n';
105 sb += __doc;
106 }
107 sb += L'\n';
108
109 __add_help(sb, __options);
110 sb += L'\n';
111 __add_help(sb, __options__);
112
113 if (__program_bug_address) {
114 sb += L"\n\n";
115 sb += L"Report bugs to ";
116 sb += __program_bug_address;
117 }
118 return sb;
119}
String shortUsage() const

◆ onOption()

void Arguments::onOption ( int _key,
const String & _arg )
protectedvirtual

Reimplemented in MainArguments, and MainArguments.

Definition at line 43 of file Arguments.cpp.

45{
46}

◆ onValidate()

String Arguments::onValidate ( )
protectedvirtual

Reimplemented in MainArguments, and MainArguments.

Definition at line 48 of file Arguments.cpp.

49{
50 return String();
51}

◆ shortUsage()

String Arguments::shortUsage ( ) const

Definition at line 121 of file Arguments.cpp.

122{
123 StringBuilder sb = L"Usage: ";
124 sb += __value0;
125 sb += L" [OPTION...] ";
126 if (__arg_doc) {
127 sb += __arg_doc;
128 }
129 return sb;
130}

◆ tryUsage()

String Arguments::tryUsage ( ) const

Definition at line 132 of file Arguments.cpp.

133{
134 StringBuilder sb = L"Try `";
135 sb += __value0;
136 sb += L" --help' or `";
137 sb += __value0;
138 sb += L" --usage' for more information.";
139 return sb;
140}

◆ usage()

String Arguments::usage ( ) const

Definition at line 214 of file Arguments.cpp.

215{
216 StringArray a;
217 {
218 String s = __key_options(__options)
219 + __key_options(__options__)
220 ;
221 if (!s.isEmpty()) {
222 a.add(L"-" + s);
223 }
224 }
225 __add_key_arg_options(a, __options);
226 __add_name_arg_options(a, __options);
227 __add_name_options(a, __options);
228 __add_name_options(a, __options__);
229
230 StringBuilder sb = L"Usage: ";
231 sb += __value0;
232 String padding(L' ', 10);
233 size_t n = sb.length();
234 for (size_t i = 0; i < a.size(); i++) {
235 const String& s = a[i];
236 if ((n + s.length() + 3) > 80) {
237 sb += L"\n";
238 sb += padding;
239 n = padding.length();
240 }
241 n += s.length() + 3;
242 sb += L" [";
243 sb += s;
244 sb += L"]";
245 }
246
247 if (__arg_doc) {
248 if (n + String::length(__arg_doc) + 1 > 80) {
249 sb += L"\n";
250 sb += padding;
251 }
252 sb += L" ";
253 sb += __arg_doc;
254 }
255
256 return sb;
257}
String __key_options(const Arguments::Option *_options)

◆ version()

String Arguments::version ( ) const

Definition at line 259 of file Arguments.cpp.

260{
261 StringBuilder sb; // = L"Version: ";
262 if (__program_version) {
263 sb += __program_version;
264 }
265
266 return sb;
267}

The documentation for this class was generated from the following files: