An adapter for copying a list of C++ strings into a list of C-style strings for passing to C code that expects argc/argv parameters. More...
Public Member Functions | |
CStringList () | |
Construct empty, adding content later (via reset). More... | |
template<class StringType > | |
CStringList (const UList< StringType > &input) | |
Copy construct from a list of strings. More... | |
template<class StringType > | |
CStringList (const SubStrings< StringType > &input) | |
Copy construct from a list of sub-string references. More... | |
~CStringList () | |
Destructor. Invokes clear() to free memory. More... | |
bool | empty () const noexcept |
True if the size is zero. More... | |
int | size () const noexcept |
Return the number of C-strings (ie, argc) More... | |
char ** | strings () const |
Return the list of C-strings (ie, argv) More... | |
char ** | strings (int start) const |
size_t | length () const |
Overall length of the flattened character (data) content. More... | |
const char * | data () const |
The flattened character content, with interspersed nul-chars. More... | |
void | clear () |
Clear contents and free memory. More... | |
template<class StringType > | |
int | reset (const UList< StringType > &input) |
Copy the input list of strings. More... | |
template<class StringType > | |
int | reset (const SubStrings< StringType > &input) |
Copy the input list of strings. More... | |
const char * | operator[] (int i) const |
Return element at the given index. No bounds checking. More... | |
template<class StringType > | |
Foam::List< StringType > | asList (int argc, const char *const argv[]) |
template<class StringType > | |
Foam::List< StringType > | asList (const char *const argv[]) |
Static Public Member Functions | |
static int | count (const char *const argv[]) |
Count the number of parameters until the first nullptr. More... | |
template<class StringType > | |
static List< StringType > | asList (int argc, const char *const argv[]) |
Create a list from argc/argv parameters. More... | |
template<class StringType > | |
static List< StringType > | asList (const char *const argv[]) |
Create a list from a nullptr-terminated list of argv parameters. More... | |
An adapter for copying a list of C++ strings into a list of C-style strings for passing to C code that expects argc/argv parameters.
In addition to providing a C-compatible list of C-strings, the string lists are flattened into a single string of data that can be also be passed en mass.
Example use:
Definition at line 69 of file CStringList.H.
|
inline |
Construct empty, adding content later (via reset).
Definition at line 61 of file CStringListI.H.
|
inlineexplicit |
Copy construct from a list of strings.
Copies the input characters.
Definition at line 71 of file CStringListI.H.
References CStringList::reset().
|
inlineexplicit |
Copy construct from a list of sub-string references.
Copies the input characters.
Definition at line 80 of file CStringListI.H.
References CStringList::reset().
|
inline |
Destructor. Invokes clear() to free memory.
Definition at line 90 of file CStringListI.H.
References clear().
|
inlinestatic |
Count the number of parameters until the first nullptr.
Return 0 if argv is nullptr.
Definition at line 45 of file CStringListI.H.
References n.
|
inlinenoexcept |
True if the size is zero.
Definition at line 116 of file CStringListI.H.
Referenced by Foam::system().
|
inlinenoexcept |
Return the number of C-strings (ie, argc)
Definition at line 122 of file CStringListI.H.
Referenced by Foam::operator<<(), and Foam::system().
|
inline |
Return the list of C-strings (ie, argv)
The position at argc is a nullptr
Definition at line 134 of file CStringListI.H.
|
inline |
Return the sublist of C-strings (ie, argv) starting at the specified offset.
start | the offset, must be less than argc |
Definition at line 140 of file CStringListI.H.
|
inline |
Overall length of the flattened character (data) content.
Definition at line 128 of file CStringListI.H.
|
inline |
The flattened character content, with interspersed nul-chars.
Definition at line 146 of file CStringListI.H.
|
inline |
Clear contents and free memory.
Definition at line 98 of file CStringListI.H.
|
inline |
Copy the input list of strings.
Definition at line 153 of file CStringListI.H.
Referenced by CStringList::CStringList().
|
inline |
Copy the input list of strings.
Definition at line 160 of file CStringListI.H.
|
static |
Create a list from argc/argv parameters.
A null pointer for argv is permissible when argc is zero.
|
inlinestatic |
Create a list from a nullptr-terminated list of argv parameters.
Using a nullptr for argv is permissible.
|
inline |
Return element at the given index. No bounds checking.
Definition at line 168 of file CStringListI.H.
Foam::List<StringType> asList | ( | int | argc, |
const char *const | argv[] | ||
) |
Definition at line 76 of file CStringListTemplates.C.
Foam::List<StringType> asList | ( | const char *const | argv[] | ) |
Definition at line 91 of file CStringListTemplates.C.
References Foam::BitOps::count().