diff options
Diffstat (limited to 'ACE/apps/JAWS/clients/Blobby/Options.cpp')
-rw-r--r-- | ACE/apps/JAWS/clients/Blobby/Options.cpp | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/Blobby/Options.cpp b/ACE/apps/JAWS/clients/Blobby/Options.cpp new file mode 100644 index 00000000000..08f7de4ad8b --- /dev/null +++ b/ACE/apps/JAWS/clients/Blobby/Options.cpp @@ -0,0 +1,81 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/ARGV.h" +#include "Blob.h" +#include "Blob_Handler.h" +#include "Options.h" + +ACE_RCSID(Blobby, Options, "$Id$") + +Options *Options::instance_ = 0; + +Options * +Options::instance (void) +{ + + if (Options::instance_ == 0) + Options::instance_ = new Options; + + return Options::instance_; +} + +void +Options::parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("rwh:p:f:l:o:d")); + + int c; + + while ((c = get_opt ()) != -1) + switch (c) + { + case 'd': + this->debug_ = 1; + break; + case 'r': + this->operation_ = 'r'; + break; + case 'w': + this->operation_ = 'w'; + break; + case 'h': + this->hostname_ = get_opt.opt_arg (); + break; + case 'p': + this->port_ = ACE_OS::atoi (get_opt.opt_arg ()); + break; + case 'f': + this->filename_ = get_opt.opt_arg (); + break; + case 'l': + this->length_ = ACE_OS::atoi (get_opt.opt_arg ()); + break; + case 'o': + this->offset_ = ACE_OS::atoi (get_opt.opt_arg ()); + break; + // Usage fallthrough. + default: + ACE_DEBUG ((LM_DEBUG, "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n", argv[0])); + ACE_OS::exit (1); + } + if (this->hostname_ == 0 || this->filename_ == 0) + { + ACE_DEBUG ((LM_DEBUG, + "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n", + argv[0])); + ACE_OS::exit (1); + } + +} + +Options::Options (void) + : hostname_ (0), + port_ (ACE_DEFAULT_HTTP_SERVER_PORT), + filename_ (0), + length_ (0), + offset_ (0), + operation_ ('r'), + debug_ (0) +{ +} |