ARGV.inl

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 // ARGV.inl,v 4.4 2006/06/09 07:47:19 jwillemsen Exp
00003 
00004 #include "ace/Global_Macros.h"
00005 
00006 // Open versioned namespace, if enabled by the user.
00007 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00008 
00009 // Return the number of args
00010 template <typename CHAR_TYPE>
00011 ACE_INLINE int
00012 ACE_ARGV_T<CHAR_TYPE>::argc (void) const
00013 {
00014   ACE_TRACE ("ACE_ARGV_T::argc");
00015   return this->argc_;
00016 }
00017 
00018 // Return the arguments in a space-separated string
00019 template <typename CHAR_TYPE>
00020 ACE_INLINE const CHAR_TYPE *
00021 ACE_ARGV_T<CHAR_TYPE>::buf (void)
00022 {
00023   ACE_TRACE ("ACE_ARGV_T::buf");
00024 
00025   if (this->buf_ == 0 && this->iterative_)
00026     this->create_buf_from_queue ();
00027 
00028   return (const CHAR_TYPE *) this->buf_;
00029 }
00030 
00031 // Return the arguments in an entry-per-argument array
00032 
00033 template <typename CHAR_TYPE>
00034 ACE_INLINE CHAR_TYPE **
00035 ACE_ARGV_T<CHAR_TYPE>::argv (void)
00036 {
00037   ACE_TRACE ("ACE_ARGV_T::argv");
00038 
00039   // Try to create the argv_ if it isn't there
00040   if (this->argv_ == 0)
00041     {
00042       if (this->iterative_ && this->buf_ == 0)
00043         this->create_buf_from_queue ();
00044 
00045       // Convert buf_ to argv_
00046       if (this->string_to_argv () == -1)
00047         return (CHAR_TYPE **) 0;
00048     }
00049 
00050   return (CHAR_TYPE **) this->argv_;
00051 }
00052 
00053 // Subscript operator.
00054 
00055 template <typename CHAR_TYPE>
00056 ACE_INLINE const CHAR_TYPE *
00057 ACE_ARGV_T<CHAR_TYPE>::operator[] (size_t i)
00058 {
00059   ACE_TRACE ("ACE_ARGV_T::operator[]");
00060 
00061   // Don't go out of bounds.
00062   if (i >= static_cast<size_t> (this->argc_))
00063     return 0;
00064 
00065   return (const CHAR_TYPE *) this->argv ()[i];
00066 }
00067 
00068 // Close versioned namespace, if enabled by the user.
00069 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 09:41:45 2006 for ACE by doxygen 1.3.6