#include <ARGV.h>
Public Types | |
enum | States { TO_STRING = 1, TO_PTR_ARRAY = 2, ITERATIVE = 3 } |
Public Member Functions | |
ACE_ARGV (const ACE_TCHAR buf[], int substitute_env_args=1) | |
ACE_ARGV (ACE_TCHAR *argv[], int substitute_env_args=1) | |
ACE_ARGV (ACE_TCHAR *first_argv[], ACE_TCHAR *second_argv[], int substitute_env_args=1) | |
ACE_ARGV (int substitute_env_args=1) | |
~ACE_ARGV (void) | |
Destructor. | |
const ACE_TCHAR * | operator[] (size_t index) |
Returns the <index>th string in the ARGV array. | |
ACE_TCHAR ** | argv (void) |
int | argc (void) const |
Returns argc . | |
const ACE_TCHAR * | buf (void) |
void | dump (void) const |
Dump the state of an object. | |
int | add (const ACE_TCHAR *next_arg) |
int | add (ACE_TCHAR *argv[]) |
int | state (void) const |
What state is this ACE_ARGV in? | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Private Member Functions | |
ACE_ARGV (const ACE_ARGV &) | |
Copy Constructor not implemented. | |
ACE_ARGV | operator= (const ACE_ARGV &) |
Assignment '=' operator not implemented. | |
int | create_buf_from_queue (void) |
Creates buf_ from the queue, deletes previous buf_. | |
int | string_to_argv (void) |
Converts buf_ into the ACE_TCHAR *argv[] format. | |
int | argv_to_string (ACE_TCHAR **argv, ACE_TCHAR *&buf) |
Private Attributes | |
int | substitute_env_args_ |
Replace args with environment variable values? | |
int | state_ |
Current state marker. | |
int | argc_ |
Number of arguments in the ARGV array. | |
ACE_TCHAR ** | argv_ |
The array of string arguments. | |
ACE_TCHAR * | buf_ |
Buffer containing the <argv> contents. | |
size_t | length_ |
ACE_Unbounded_Queue< ACE_TCHAR * > | queue_ |
enum ACE_ARGV::States |
ACE_ARGV::ACE_ARGV | ( | const ACE_TCHAR | buf[], | |
int | substitute_env_args = 1 | |||
) |
Splits the specified string into an argument vector, split at whitespace.
buf | An ACE_TCHAR array to split into tokens for the vector. | |
substitute_env_args | If non-zero, any token that is an an environment variable reference ($VAR) will have its environment variable value in the resultant vector in place of the environment variable name. This only works if the token is an environment variable reference and nothing else; it doesn't substitute environment variable references within a token. For example, $HOME/file will not substitute the value of the HOME environment variable. |
ACE_ARGV::ACE_ARGV | ( | ACE_TCHAR * | argv[], | |
int | substitute_env_args = 1 | |||
) |
Converts argv into a linear string. If substitute_env_args is enabled then we'll substitute the environment variables for each $ENV encountered in the string. The <buf> operation is not allowed on an ACE_ARGV created this way.
ACE_ARGV::ACE_ARGV | ( | ACE_TCHAR * | first_argv[], | |
ACE_TCHAR * | second_argv[], | |||
int | substitute_env_args = 1 | |||
) |
Creates an ACE_ARGV which is the concatenation of the first_argv and the second argv. The argv arguments should be null pointer terminated.
ACE_ARGV::ACE_ARGV | ( | int | substitute_env_args = 1 |
) |
Entry point for creating an ACE_TCHAR *[] command line iteratively via the <add> method. When this constructor is used, the <ITERATIVE> state is enabled. The <argv> and <buf> methods are allowed, and the result is recreated when called multiple times. The subscript operator is not allowed.
ACE_ARGV::~ACE_ARGV | ( | void | ) |
Destructor.
ACE_ARGV::ACE_ARGV | ( | const ACE_ARGV & | ) | [private] |
Copy Constructor not implemented.
int ACE_ARGV::add | ( | ACE_TCHAR * | argv[] | ) |
Add another argv array. The argv parameter must be NULL terminated. This only works in the <ITERATIVE> state. Returns -1 on failure and 0 on success.
int ACE_ARGV::add | ( | const ACE_TCHAR * | next_arg | ) |
Add another argument. This only works in the <ITERATIVE> state. Note that this method does not copy <next_arg>, nor does it assume ownership of managing its memory, i.e., the caller is responsible for memory management. Returns -1 on failure and 0 on success.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE int ACE_ARGV::argc | ( | void | ) | const |
Returns argc
.
ACE_INLINE ACE_TCHAR ** ACE_ARGV::argv | ( | void | ) |
Returns the argv
array. Caller should not delete this memory since the ACE_ARGV destructor will delete it. If the caller modifies the array in the iterative mode, the changes are not saved to the queue.
Returns the string created from argv in buf and returns the number of arguments.
ACE_INLINE const ACE_TCHAR * ACE_ARGV::buf | ( | void | ) |
Returns the buf
. Caller should not delete this memory since the ACE_ARGV destructor will delete it.
int ACE_ARGV::create_buf_from_queue | ( | void | ) | [private] |
Creates buf_ from the queue, deletes previous buf_.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_ARGV::dump | ( | void | ) | const |
Dump the state of an object.
Assignment '=' operator not implemented.
ACE_INLINE const ACE_TCHAR * ACE_ARGV::operator[] | ( | size_t | index | ) |
Returns the <index>th string in the ARGV array.
ACE_INLINE int ACE_ARGV::state | ( | void | ) | const |
What state is this ACE_ARGV in?
int ACE_ARGV::string_to_argv | ( | void | ) | [private] |
Converts buf_ into the ACE_TCHAR *argv[] format.
Declare the dynamic allocation hooks.
int ACE_ARGV::argc_ [private] |
Number of arguments in the ARGV array.
ACE_TCHAR** ACE_ARGV::argv_ [private] |
The array of string arguments.
ACE_TCHAR* ACE_ARGV::buf_ [private] |
Buffer containing the <argv> contents.
size_t ACE_ARGV::length_ [private] |
Total length of the arguments in the queue, not counting separating spaces
ACE_Unbounded_Queue<ACE_TCHAR *> ACE_ARGV::queue_ [private] |
Queue which keeps user supplied arguments. This is only active in the "iterative" mode.
int ACE_ARGV::state_ [private] |
Current state marker.
int ACE_ARGV::substitute_env_args_ [private] |
Replace args with environment variable values?