diff options
Diffstat (limited to 'ace/Arg_Shifter.h')
-rw-r--r-- | ace/Arg_Shifter.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/ace/Arg_Shifter.h b/ace/Arg_Shifter.h deleted file mode 100644 index cd1f5517344..00000000000 --- a/ace/Arg_Shifter.h +++ /dev/null @@ -1,152 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ - -// ======================================================================== -// -// = LIBRARY -// ace -// -// = FILENAME -// Arg_Shifter.h -// -// = AUTHOR -// Seth Widoff -// -// ======================================================================== - -#ifndef ACE_ARG_SHIFTER_H -#define ACE_ARG_SHIFTER_H - -#include "ace/OS.h" - - -class ACE_Export ACE_Arg_Shifter -{ - // = TITLE - // This ADT shifts known args to the back of the argv vector, so - // deeper levels of argument parsing can locate the yet - // unprocessed arguments at the beginning of the vector. - // - // = DESCRIPTION - // The <ACE_Arg_Shifter> copies the pointers of the argv vector - // into a temporary array. As the <ACE_Arg_Shifter> iterates over - // the temp, is places known arguments in the rear of the argv - // and unknown ones in the beginning. So, after having visited - // all the arguments in the temp vector, <ACE_Arg_Shifter> has - // placed all the unknown arguments in their original order at - // the front of argv. -public: - // = Initialization and termination methods. - ACE_Arg_Shifter (int& argc, - char** argv, - char** temp = 0); - // Initialize the <ACE_Arg_Shifter> to the vector over which to - // iterate, also providing the temporary array if the client doesn't - // want the arg_shifter to dynamically allocate its own. If internal - // dynamic allocation fails, the <ACE_Arg_Shifter> will set all the - // indices to the end of the vector, forbidding iteration. Following - // iteration over argv, the argc value will contain the number of - // unconsumed arguments. - - ~ACE_Arg_Shifter (void); - // Destructor. - - char* get_current (void) const; - // Get the current head of the vector. - - char* get_current_parameter (int offset = 0); - // After checking for a flag, use this method return the parameter - // Safe to call without checking for current argument - // - // If offset > 0, returns current argument + offset - // if (offset == 2) ... "value" returns pointer to "lue" - // if (offset == 7) ... "value" returns 0 - // - // If offset == 0 - // consumes current argument - // if (is_parameter_next ()) is true - // then returns a pointer to the new current argument - // else returns 0 - // - // If offset < 0, returns current argument with offset - // but offset counts from the back - // if (offset == -2) ... "value" returns pointer to "ue" - // if (offset == -9) ... "value" returns 0 - - int cur_arg_strncasecmp (const char* flag); - // Check if the current argument matches (case insensitive) <flag> - // - // ------------------------------------------------------------ - // - // Case A: Perfect Match (case insensitive) - // 0 is returned. - // - // ie: when current_arg = "-foobar" or "-FOOBAR" or "-fooBAR" - // this->cur_arg_strncasecmp ("-FooBar); - // will return 0 - // - // ------------------------------------------------------------ - // - // Case B: Perfect Match (case insensitive) but the current_arg - // is longer than the flag. Returns a number equal to the index - // in the char* indicating the start of the extra characters - // - // ie: when current_arg = "-foobar98023" - // this->cur_arg_strncasecmp ("-FooBar); - // will return 7 - // - // Notice: this number will always be > 0 - // - // ------------------------------------------------------------ - // - // Case C: If neither of Case A or B is met (no match) - // then -1 is returned - - int consume_arg (int number = 1); - // Consume <number> argument(s) by sticking them/it on the end of - // the vector. - - int ignore_arg (int number = 1); - // Place <number> arguments in the same relative order ahead of the - // known arguemnts in the vector. - - int is_anything_left (void) const; - // Returns the number of args left to see in the vector. - - int is_option_next (void) const; - // Returns 1 if there's a next item in the vector and it begins with - // '-'. - - int is_parameter_next (void) const; - // Returns 1 if there's a next item in the vector and it doesn't - // begin with '-'. - - int num_ignored_args (void) const; - // Returns the number of irrelevant args seen. - -private: - int& argc_; - // The size of the argument vector. - - int total_size_; - // The size of argv_. - - char** temp_; - // The temporary array over which we traverse. - - char** argv_; - // The array in which the arguments are reordered. - - int current_index_; - // The element in <temp_> we're currently examining. - - int back_; - // The index of <argv_> in which we'll stick the next unknown - // argument. - - int front_; - // The index of <argv_> in which we'll stick the next known - // argument. -}; - -#endif /* ACE_ARG_SHIFTER_H */ |