X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FService.hh;h=7c5e6b7b7b440ad4ba9f14fb6ec519eb230633c6;hp=5870d576b454717217a4da1e18efee8abf58a24a;hb=c78934a448d0126709fccec3d5a636b3baa87da4;hpb=41f8dd670e963aad94527ce2be0486268993a477 diff --git a/src/Moof/Service.hh b/src/Moof/Service.hh index 5870d57..7c5e6b7 100644 --- a/src/Moof/Service.hh +++ b/src/Moof/Service.hh @@ -12,29 +12,76 @@ #ifndef _MOOF_SERVICE_HH_ #define _MOOF_SERVICE_HH_ +#include + #include +#include namespace Mf { -class ServiceBroadcaster +/** + * Class representing a network service. + */ +class Service { public: - ServiceBroadcaster(const std::string& name); + /** + * Construct a network service. + * \param address The address of the host. + * \param text The service information. + */ + Service(const SocketAddress& address, const std::string& text); + + + /** + * Get the host address. + * \return The address. + */ + const SocketAddress& address() const; + + /** + * Get the service information. + * \return The service information as a string. + */ + const std::string& text() const; + + + /** + * Publish the service on the network. + */ + void publish(); void update(Scalar t, Scalar dt); + + +private: + + SocketAddress mAddress; + std::string mText; }; -class ServiceLocator +class ServiceFinder { public: - ServiceLocator(const std::string& name); + ServiceFinder(const std::string& service, int type = SOCK_STREAM); void update(Scalar t, Scalar dt); + + + const std::vector& services() const + { + return mServices; + } + + +private: + + std::vector mServices; };