00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Seq_Out_T.h 00006 * 00007 * $Id: Seq_Out_T.h 72136 2006-04-19 09:10:19Z jwillemsen $ 00008 * 00009 * @author Jeff Parsons 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_SEQ_OUT_T_H 00014 #define TAO_SEQ_OUT_T_H 00015 #include /**/ "ace/pre.h" 00016 00017 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00018 # pragma once 00019 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00020 00021 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00022 00023 /** 00024 * @class TAO_Seq_Out_T 00025 * 00026 * @brief Parametrized implementation of _out class for sequences. 00027 * 00028 */ 00029 template <typename T> 00030 class TAO_Seq_Out_T 00031 { 00032 public: 00033 typedef typename T::subscript_type T_elem; 00034 typedef typename T::_var_type T_var; 00035 00036 TAO_Seq_Out_T (T *&); 00037 TAO_Seq_Out_T (T_var &); 00038 TAO_Seq_Out_T (const TAO_Seq_Out_T<T> &); 00039 00040 TAO_Seq_Out_T &operator= (const TAO_Seq_Out_T<T> &); 00041 TAO_Seq_Out_T &operator= (T *); 00042 00043 operator T *& (); 00044 T * operator-> (void); 00045 00046 T_elem operator[] (CORBA::ULong index); 00047 T *& ptr (void); 00048 00049 private: 00050 T *& ptr_; 00051 // Assignment from T_var not allowed. 00052 void operator= (const T_var &); 00053 }; 00054 00055 TAO_END_VERSIONED_NAMESPACE_DECL 00056 00057 #if defined (__ACE_INLINE__) 00058 #include "tao/Seq_Out_T.inl" 00059 #endif /* defined INLINE */ 00060 00061 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) 00062 #include "tao/Seq_Out_T.cpp" 00063 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ 00064 00065 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) 00066 #pragma implementation ("Seq_Out_T.cpp") 00067 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ 00068 00069 #include /**/ "ace/post.h" 00070 #endif /* TAO_SEQ_OUT_T_H */