00001 // -*- C++ -*- 00002 00003 /** 00004 * @file Seq_Worker_T.h 00005 * 00006 * Seq_Worker_T.h,v 1.10 2006/03/14 06:14:34 jtc Exp 00007 * 00008 * @author Pradeep Gore <pradeep@oomworks.com> 00009 */ 00010 00011 #ifndef TAO_Notify_SEQ_WORKER_T_H 00012 #define TAO_Notify_SEQ_WORKER_T_H 00013 #include /**/ "ace/pre.h" 00014 00015 #include "orbsvcs/Notify/notify_serv_export.h" 00016 00017 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00018 # pragma once 00019 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00020 00021 #include "orbsvcs/ESF/ESF_Proxy_Collection.h" 00022 #include "orbsvcs/ESF/ESF_Worker.h" 00023 #include "orbsvcs/Notify/Container_T.h" 00024 00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00026 00027 /** 00028 * @class TAO_Notify_Seq_Worker_T 00029 * 00030 * @brief Helper to construct a sequence of IDS in a collections. 00031 * 00032 */ 00033 template <class TYPE> 00034 class TAO_Notify_Serv_Export TAO_Notify_Seq_Worker_T 00035 : public TAO_ESF_Worker<TYPE> 00036 { 00037 typedef TAO_Notify_Container_T<TYPE> CONTAINER; 00038 typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION; 00039 typedef typename TYPE::SEQ SEQ; 00040 typedef typename TYPE::SEQ_VAR SEQ_VAR; 00041 00042 public: 00043 /// Constructor 00044 TAO_Notify_Seq_Worker_T (void); 00045 00046 /// create a SEQ 00047 SEQ* create (CONTAINER& container ACE_ENV_ARG_DECL); 00048 00049 protected: 00050 ///= TAO_ESF_Worker method 00051 void work (TYPE* object ACE_ENV_ARG_DECL); 00052 00053 /// The result 00054 SEQ_VAR seq_; 00055 }; 00056 00057 TAO_END_VERSIONED_NAMESPACE_DECL 00058 00059 #if defined (__ACE_INLINE__) 00060 #include "orbsvcs/Notify/Seq_Worker_T.inl" 00061 #endif /* __ACE_INLINE__ */ 00062 00063 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) 00064 #include "orbsvcs/Notify/Seq_Worker_T.cpp" 00065 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ 00066 00067 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) 00068 #pragma implementation ("Seq_Worker_T.cpp") 00069 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ 00070 00071 #include /**/ "ace/post.h" 00072 #endif /* TAO_Notify_SEQ_WORKER_T_H */