diff options
Diffstat (limited to 'dep/ACE_wrappers/ace/ARGV.inl')
-rw-r--r-- | dep/ACE_wrappers/ace/ARGV.inl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/ARGV.inl b/dep/ACE_wrappers/ace/ARGV.inl index 07e598eb57c..fdc5b13d7c3 100644 --- a/dep/ACE_wrappers/ace/ARGV.inl +++ b/dep/ACE_wrappers/ace/ARGV.inl @@ -1,8 +1,11 @@ /* -*- C++ -*- */ // $Id: ARGV.inl 80826 2008-03-04 14:51:23Z wotte $ + #include "ace/Global_Macros.h" + // Open versioned namespace, if enabled by the user. ACE_BEGIN_VERSIONED_NAMESPACE_DECL + template <typename CHAR_TYPE> ACE_INLINE ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (void) : arg_(0), @@ -10,6 +13,7 @@ ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (void) { // No-op } + template <typename CHAR_TYPE> ACE_INLINE ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (const CHAR_TYPE *arg, bool quote_arg) @@ -18,6 +22,7 @@ ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (const CHAR_TYPE *arg, { // No-op } + template <typename CHAR_TYPE> ACE_INLINE ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (const ACE_ARGV_Queue_Entry_T<CHAR_TYPE> &entry) : arg_(entry.arg_), @@ -25,11 +30,13 @@ ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::ACE_ARGV_Queue_Entry_T (const ACE_ARGV_Queue_ { // No-op } + template <typename CHAR_TYPE> ACE_INLINE ACE_ARGV_Queue_Entry_T<CHAR_TYPE>::~ACE_ARGV_Queue_Entry_T (void) { // No-op just to keep some compilers happy... } + // Return the number of args template <typename CHAR_TYPE> ACE_INLINE int @@ -42,43 +49,56 @@ ACE_ARGV_T<CHAR_TYPE>::argc (void) const (void) nonconst_this->argv (); return this->argc_; } + // Return the arguments in a space-separated string template <typename CHAR_TYPE> ACE_INLINE const CHAR_TYPE * ACE_ARGV_T<CHAR_TYPE>::buf (void) { ACE_TRACE ("ACE_ARGV_T::buf"); + if (this->buf_ == 0 && this->iterative_) this->create_buf_from_queue (); + return (const CHAR_TYPE *) this->buf_; } + // Return the arguments in an entry-per-argument array + template <typename CHAR_TYPE> ACE_INLINE CHAR_TYPE ** ACE_ARGV_T<CHAR_TYPE>::argv (void) { ACE_TRACE ("ACE_ARGV_T::argv"); + // Try to create the argv_ if it isn't there if (this->argv_ == 0) { if (this->iterative_ && this->buf_ == 0) this->create_buf_from_queue (); + // Convert buf_ to argv_ if (this->string_to_argv () == -1) return (CHAR_TYPE **) 0; } + return (CHAR_TYPE **) this->argv_; } + // Subscript operator. + template <typename CHAR_TYPE> ACE_INLINE const CHAR_TYPE * ACE_ARGV_T<CHAR_TYPE>::operator[] (size_t i) { ACE_TRACE ("ACE_ARGV_T::operator[]"); + // Don't go out of bounds. if (i >= static_cast<size_t> (this->argc_)) return 0; + return (const CHAR_TYPE *) this->argv ()[i]; } + // Close versioned namespace, if enabled by the user. ACE_END_VERSIONED_NAMESPACE_DECL |