11 #include "utils/Job.h" 18 class CCriticalSection;
39 bool PublishService(
const std::string& fcr_identifier,
40 const std::string& fcr_type,
41 const std::string& fcr_name,
43 std::vector<std::pair<std::string, std::string> > txt );
51 bool ForceReAnnounceService(
const std::string& fcr_identifier);
58 bool HasService(
const std::string& fcr_identifier)
const;
75 static void ReleaseInstance();
77 static bool IsInstantiated() {
return smp_instance != 0; }
79 virtual void ProcessResults() {}
81 bool IsStarted() {
return m_started; }
86 virtual bool doPublishService(
const std::string& fcr_identifier,
87 const std::string& fcr_type,
88 const std::string& fcr_name,
90 const std::vector<std::pair<std::string, std::string> >& txt) = 0;
94 virtual bool doForceReAnnounceService(
const std::string& fcr_identifier) = 0;
97 virtual bool doRemoveService(
const std::string& fcr_ident) = 0;
100 virtual void doStop() = 0;
103 virtual bool IsZCdaemonRunning() {
return true; }
116 std::vector<std::pair<std::string, std::string> > txt;
120 CCriticalSection* mp_crit_sec;
121 typedef std::map<std::string, PublishInfo> tServiceMap;
122 tServiceMap m_service_map;
123 bool m_started =
false;
127 class CPublish :
public CJob 130 CPublish(
const std::string& fcr_identifier,
const PublishInfo& pubinfo);
131 explicit CPublish(
const tServiceMap& servmap);
133 bool DoWork()
override;
136 tServiceMap m_servmap;
bool HasService(const std::string &fcr_identifier) const
returns true if fcr_identifier exists
Definition: Zeroconf.cpp:107
Base class for jobs that are executed asynchronously.
Definition: Job.h:109
bool RemoveService(const std::string &fcr_identifier)
removes the specified service returns false if fcr_identifier does not exist
Definition: Zeroconf.cpp:85
this class provides support for zeroconf while the different zeroconf implementations have asynchrono...
Definition: Zeroconf.h:28