00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * \file Save_Persist_Worker_T.h 00006 * 00007 * $Id: Save_Persist_Worker_T.h 90386 2010-06-02 13:52:08Z vzykov $ 00008 * 00009 * \author Jonathan Pollack <pollack_j@ociweb.com> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef SAVE_PERSIST_WORKER_H 00014 #define SAVE_PERSIST_WORKER_H 00015 #include /**/ "ace/pre.h" 00016 00017 #include "orbsvcs/ESF/ESF_Worker.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 #pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00025 00026 namespace TAO_Notify 00027 { 00028 class Topology_Saver; 00029 00030 /** 00031 * \brief Iterate through children saving persistent topology information. 00032 */ 00033 template<class TOPOOBJ> 00034 class Save_Persist_Worker : public TAO_ESF_Worker<TOPOOBJ> 00035 { 00036 public: 00037 /** 00038 * /brief Constructor 00039 * /param saver the object that will save persistent information. 00040 * /param want_all_children if true, unmodified children should be saved, too. 00041 */ 00042 Save_Persist_Worker(Topology_Saver& saver, bool want_all_children); 00043 00044 // override virtual ESF_Worker method 00045 virtual void work (TOPOOBJ* o); 00046 00047 private: 00048 Topology_Saver& saver_; 00049 bool want_all_children_; 00050 }; 00051 } // namespace TAO_Notify 00052 00053 TAO_END_VERSIONED_NAMESPACE_DECL 00054 00055 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) 00056 #include "orbsvcs/Notify/Save_Persist_Worker_T.cpp" 00057 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ 00058 00059 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) 00060 #pragma implementation ("Save_Persist_Worker_T.cpp") 00061 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ 00062 00063 #include /**/ "ace/post.h" 00064 00065 #endif /* SAVE_PERSIST_WORKER_H */