summaryrefslogtreecommitdiff
path: root/TAO/tao/Bounded_Basic_String_Sequence_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Bounded_Basic_String_Sequence_T.h')
-rw-r--r--TAO/tao/Bounded_Basic_String_Sequence_T.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/TAO/tao/Bounded_Basic_String_Sequence_T.h b/TAO/tao/Bounded_Basic_String_Sequence_T.h
index c056bc2c60c..14ca643f6e3 100644
--- a/TAO/tao/Bounded_Basic_String_Sequence_T.h
+++ b/TAO/tao/Bounded_Basic_String_Sequence_T.h
@@ -14,6 +14,7 @@
#include "tao/Generic_Sequence_T.h"
#include "tao/String_Sequence_Element_T.h"
#include "tao/String_Const_Sequence_Element_T.h"
+#include "tao/MM_Sequence_Iterator_T.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -105,6 +106,77 @@ public:
implementation_type::freebuf(buffer);
}
+#if defined TAO_HAS_SEQUENCE_ITERATORS && TAO_HAS_SEQUENCE_ITERATORS == 1
+
+ ///
+ /// Additions to support iterator semantics for TAO unbounded basic
+ /// string sequences.
+ ///
+
+ // = Traits and factory methods that create iterators.
+ typedef MM_Sequence_Iterator<bounded_basic_string_sequence<charT, MAX> > iterator;
+ typedef Const_MM_Sequence_Iterator<bounded_basic_string_sequence<charT, MAX> > const_iterator;
+ typedef MM_Sequence_Reverse_Iterator<bounded_basic_string_sequence<charT, MAX> > reverse_iterator;
+ typedef Const_MM_Sequence_Reverse_Iterator<bounded_basic_string_sequence<charT, MAX> > const_reverse_iterator;
+
+ // Get an iterator that points to the beginning of the sequence.
+ inline iterator begin (void)
+ {
+ return iterator (&this->impl_);
+ }
+
+ // Get a const iterator that points to the beginning of the sequence.
+ inline const_iterator begin (void) const
+ {
+ return const_iterator (&this->impl_);
+ }
+
+ // Get an iterator that points to the end of the sequence.
+ inline iterator end (void)
+ {
+ return iterator (&this->impl_,
+ this->impl_.length ());
+ }
+
+ // Get a const iterator that points to the end of the sequence.
+ inline const_iterator end (void) const
+ {
+ return const_iterator (&this->impl_,
+ this->impl_.length ());
+ }
+
+ // Get a reverse iterator that points to the end of the sequence.
+ inline reverse_iterator rbegin (void)
+ {
+ return reverse_iterator (&this->impl_,
+ this->impl_.length () - 1);
+ }
+
+ // Get a const reverse iterator that points to the end of the sequence.
+ inline const_reverse_iterator rbegin (void) const
+ {
+ return const_reverse_iterator (&this->impl_,
+ this->impl_.length () - 1);
+ }
+
+ // Get a reverse iterator that points to one before the beginning
+ // of the sequence.
+ inline reverse_iterator rend (void)
+ {
+ return reverse_iterator (&this->impl_,
+ -1);
+ }
+
+ // Get a const reverse iterator that points to one before the
+ // beginning of the sequence.
+ inline const_reverse_iterator rend (void) const
+ {
+ return const_reverse_iterator (&this->impl_,
+ -1);
+ }
+
+#endif /* TAO_HAS_SEQUENCE_ITERATORS==1 */
+
private:
implementation_type impl_;
};