summaryrefslogtreecommitdiff
path: root/TAO/tao/Bounded_Object_Reference_Sequence_T.h
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-03-23 09:55:43 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-03-23 09:55:43 +0000
commit01bfd7c8a6335013cf9c385dc53b7f48101c0c96 (patch)
treeafec899c0e18bd892d0e1cb01d66ee23d1319da1 /TAO/tao/Bounded_Object_Reference_Sequence_T.h
parent28c1208615a2f9ed300cfccd4488d8f889d1e0ab (diff)
downloadATCD-01bfd7c8a6335013cf9c385dc53b7f48101c0c96.tar.gz
Mon Mar 23 09:55:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* tao/Bounded_Basic_String_Sequence_T.h * tao/Bounded_Object_Reference_Sequence_T.h * tao/Generic_Sequence_T.h * tao/Makefile.am * tao/MM_Sequence_Iterator_T.h * tao/orbconf.h * tao/tao.mpc * tao/Unbounded_Basic_String_Sequence_T.h * tao/Unbounded_Object_Reference_Sequence_T.h * tao/Unbounded_Value_Sequence_T.h * tests/Sequence_Iterators/* Added support for STL iterators for the CORBA sequences. This has been developed by Joe Hoffert <jhoffert at dre dot vanderbilt dot edu> The code is not 100% finished yet, some last memory leaks and portability issues are left. By merging this to svn head it is much easier to test the code on all the platforms. This feature is disabled by default, you have to define TAO_HAS_SEQUENCE_ITERATORS to 1 in your config.h file to enable this feature. Be aware that these STL iterators are a TAO specific addition and are not part of the CORBA C++ mapping
Diffstat (limited to 'TAO/tao/Bounded_Object_Reference_Sequence_T.h')
-rw-r--r--TAO/tao/Bounded_Object_Reference_Sequence_T.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/TAO/tao/Bounded_Object_Reference_Sequence_T.h b/TAO/tao/Bounded_Object_Reference_Sequence_T.h
index 5d367a816e2..2a4af14b14f 100644
--- a/TAO/tao/Bounded_Object_Reference_Sequence_T.h
+++ b/TAO/tao/Bounded_Object_Reference_Sequence_T.h
@@ -14,6 +14,7 @@
#include "Generic_Sequence_T.h"
#include "Object_Reference_Sequence_Element_T.h"
#include "Object_Reference_Const_Sequence_Element_T.h"
+#include "tao/MM_Sequence_Iterator_T.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -106,6 +107,77 @@ public:
}
+#if defined TAO_HAS_SEQUENCE_ITERATORS && TAO_HAS_SEQUENCE_ITERATORS == 1
+
+ ///
+ /// Additions to support iterator semantics for TAO bounded object
+ /// reference sequences.
+ ///
+
+ // = Traits and factory methods that create iterators.
+ typedef MM_Sequence_Iterator<bounded_object_reference_sequence<object_t, object_t_var, MAX> > iterator;
+ typedef Const_MM_Sequence_Iterator<bounded_object_reference_sequence<object_t, object_t_var, MAX> > const_iterator;
+ typedef MM_Sequence_Reverse_Iterator<bounded_object_reference_sequence<object_t, object_t_var, MAX> > reverse_iterator;
+ typedef Const_MM_Sequence_Reverse_Iterator<bounded_object_reference_sequence<object_t, object_t_var, MAX> > const_reverse_iterator;
+
+ // Get an iterator that points to the beginning of the sequence.
+ iterator begin (void)
+ {
+ return iterator (&this->impl_);
+ }
+
+ // Get a const iterator that points to the beginning of the sequence.
+ const_iterator begin (void) const
+ {
+ return const_iterator (&this->impl_);
+ }
+
+ // Get an iterator that points to the end of the sequence.
+ iterator end (void)
+ {
+ return iterator (&this->impl_,
+ this->impl_.length ());
+ }
+
+ // Get a const iterator that points to the end of the sequence.
+ 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.
+ 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.
+ 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.
+ 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.
+ const_reverse_iterator rend (void) const
+ {
+ return const_reverse_iterator (&this->impl_,
+ -1);
+ }
+
+#endif /* TAO_HAS_SEQUENCE_ITERATORS==1 */
+
private:
implementation_type impl_;
};