DCL 4.0
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 143 of file Arguments.cpp.

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

◆ help()

String Arguments::help ( ) const

Definition at line 101 of file Arguments.cpp.

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

◆ onOption()

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

Reimplemented in MainArguments, and MainArguments.

Definition at line 44 of file Arguments.cpp.

46{
47}

◆ onValidate()

String Arguments::onValidate ( )
protectedvirtual

Reimplemented in MainArguments, and MainArguments.

Definition at line 49 of file Arguments.cpp.

50{
51 return String();
52}

◆ shortUsage()

String Arguments::shortUsage ( ) const

Definition at line 122 of file Arguments.cpp.

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

◆ tryUsage()

String Arguments::tryUsage ( ) const

Definition at line 133 of file Arguments.cpp.

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

◆ usage()

String Arguments::usage ( ) const

Definition at line 215 of file Arguments.cpp.

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

◆ version()

String Arguments::version ( ) const

Definition at line 260 of file Arguments.cpp.

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

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