Program Listing for File in_process_service_discoverer.h¶
↰ Return to documentation for file (microlith/in_process_service_discoverer.h
)
#ifndef INCLUDE_MICROLITH_IN_PROCESS_SERVICE_DISCOVERER_H_
#define INCLUDE_MICROLITH_IN_PROCESS_SERVICE_DISCOVERER_H_
#include <memory>
#include <unordered_map>
#include "microlith/services.h"
namespace microlith {
class in_process_service_discoverer
: public service<in_process_service_discoverer>,
public provides_services<service_discovery_interface> {
public:
void discover(std::shared_ptr<abstract_service> service) override;
bool has_service(service_id id);
std::shared_ptr<abstract_service> get_service(service_id id);
private:
std::unordered_map<service_id, std::shared_ptr<abstract_service>> _services{};
}; // class in_process_service_discoverer
} // namespace microlith
#endif // INCLUDE_MICROLITH_IN_PROCESS_SERVICE_DISCOVERER_H_