// -*- C++ -*- //============================================================================= /** * @file XML_Topology_Factory.h * * @author Jonathan Pollack */ //============================================================================= #ifndef XML_TOPOLOGY_FACTORY_H #define XML_TOPOLOGY_FACTORY_H #include /**/ "ace/pre.h" #include "orbsvcs/Notify/Topology_Factory.h" #include "orbsvcs/Notify/notify_persist_export.h" #include "tao/corba.h" #include "ace/SString.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace TAO_Notify { extern const char TOPOLOGY_ID_NAME[]; /** * \brief Create XML topology savers and loaders * * Loaded by a svc.conf line like: * dynamic Topology_Factory Service_Object* TAO_CosNotificationd:_make_XML_Topology_Factory() "[arguments]" * where arguments are: * -base_path Base path (directory and filename) for both saving and loading. * .xml will be appended to the base path * Default is ./Notification_Service_Topology * -save_base_path Base path for saving. * -load_base_path Base path for loading. * -file_count How many backup copies to keep. Default is 1 * -no_timestamp Disable timestamping (makes files diffable) * Note: you can set both saving and storing to the same file using -base_path * Or you can set them independently using -save_base_path * and -load_base_path * */ class TAO_Notify_Persist_Export XML_Topology_Factory : public Topology_Factory { public: /// The constructor. XML_Topology_Factory (); virtual ~XML_Topology_Factory (); //////////////////////////////////// // Override Topology_Factory methods // documented in Topology_Factory.h virtual Topology_Saver* create_saver (); virtual Topology_Loader* create_loader(); //////////////////////////////// // Override Share_Object methods // documented in ace/Shared_Object.h virtual int init (int argc, ACE_TCHAR *argv[]); virtual int fini (); private: ACE_TString save_base_path_; ACE_TString load_base_path_; size_t backup_count_; bool timestamp_; }; } // namespace TAO_Notify TAO_END_VERSIONED_NAMESPACE_DECL ACE_FACTORY_DECLARE (TAO_Notify_Persist, TAO_Notify_XML_Topology_Factory) #include /**/ "ace/post.h" #endif /* XML_TOPOLOGY_FACTORY_H */