INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
hydrolibs/hydropublish/ogmappublisher.h00001 #ifndef HYDROPUBLISH_OGMAPPUBLISHER_H 00002 #define HYDROPUBLISH_OGMAPPUBLISHER_H 00003 00004 #include <boost/shared_ptr.hpp> 00005 #include <hydroogmap/ogmap.h> 00006 00007 namespace hydropublish { 00008 00009 // 00010 // @brief Allows publishing of an OG map. 00011 // 00012 // @author Alex Brooks 00013 // 00014 class OgMapPublisher 00015 { 00016 public: 00017 virtual ~OgMapPublisher() {} 00018 00019 virtual void init()=0; 00020 virtual void localSetAndSend( const hydroogmap::OgMap &ogMap )=0; 00021 00022 private: 00023 00024 }; 00025 typedef boost::shared_ptr<OgMapPublisher> OgMapPublisherPtr; 00026 00027 // Does nothing 00028 class DummyOgMapPublisher : public OgMapPublisher { 00029 public: 00030 virtual void init() {} 00031 virtual void localSetAndSend( const hydroogmap::OgMap &ogMap ) {} 00032 }; 00033 00034 // 00035 // @brief Allows pulishers of unknown concrete type to be created 00036 // 00037 // @author Alex Brooks 00038 // 00039 class OgMapPublisherFactory 00040 { 00041 public: 00042 virtual ~OgMapPublisherFactory() {} 00043 00044 virtual OgMapPublisherPtr createPublisher( const std::string &name )=0; 00045 00046 private: 00047 }; 00048 typedef boost::shared_ptr<OgMapPublisherFactory> OgMapPublisherFactoryPtr; 00049 00050 // Creates dummy publishers 00051 class DummyOgMapPublisherFactory : public OgMapPublisherFactory { 00052 public: 00053 OgMapPublisherPtr createPublisher( const std::string &name ) 00054 { return OgMapPublisherPtr(new DummyOgMapPublisher); } 00055 }; 00056 00057 } 00058 00059 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)