NAME

ACE_ARGV - Transforms a string buf into an argv style vector of strings or an argv style vector of string buf, performing environment variable substitutions if necessary.

SYNOPSIS

#include <ace/ARGV.h>

class ACE_ARGV { public: ACE_ARGV (const ASYS_TCHAR buf[], int substitute_env_args = 1); ACE_ARGV (ASYS_TCHAR *argv[], int substitute_env_args = 1); ACE_ARGV ( ASYS_TCHAR *first_argv[], ASYS_TCHAR *second_argv[], int substitute_env_args =1 ); ACE_ARGV (int substitute_env_args = 1); ~ACE_ARGV (void); const ASYS_TCHAR *operator[] (size_t index); ASYS_TCHAR **argv (void); size_t argc (void) const; const ASYS_TCHAR *buf (void); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; int add (const ASYS_TCHAR *next_arg); int add (ASYS_TCHAR *argv[]); int state (void) const; enum States{ TO_STRING = 1, TO_PTR_ARRAY = 2, ITERATIVE = 3 }; private: int create_buf_from_queue (void); int string_to_argv (void); int argv_to_string (ASYS_TCHAR **argv, ASYS_TCHAR *&buf); int substitute_env_args_; int state_; size_t argc_; ASYS_TCHAR **argv_; ASYS_TCHAR *buf_; size_t length_; ACE_Unbounded_Queue<ASYS_TCHAR *> queue_; };

Initialization and termination.

ACE_ARGV (const ASYS_TCHAR buf[], int substitute_env_args = 1);

ACE_ARGV (ASYS_TCHAR *argv[], int substitute_env_args = 1);

ACE_ARGV (
    ASYS_TCHAR *first_argv[],
    ASYS_TCHAR *second_argv[],
    int substitute_env_args =1
    );

ACE_ARGV (int substitute_env_args = 1);

~ACE_ARGV (void);

Accessor arguments.

const ASYS_TCHAR *operator[] (size_t index);

ASYS_TCHAR **argv (void);

size_t argc (void) const;

const ASYS_TCHAR *buf (void);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

int add (const ASYS_TCHAR *next_arg);

int add (ASYS_TCHAR *argv[]);

int state (void) const;

These are the states possible via the different constructors.

AUTHOR

Doug Schmidt, Everett Anderson

LIBRARY

ace