package eu.europeana.cloud.service.coordination.registration;
import eu.europeana.cloud.service.coordination.ServiceProperties;
/**
* A mechanism to advertise ecloud's service instances.
*
* @author emmanouil.koufakis@theeuropeanlibrary.org
*
*/
public interface EcloudServiceAdvertiser {
/**
* Starts advertising the specified service.
*
* @param serviceProperties List of properties required to connect to this Service.
*/
void startAdvertising(ServiceProperties serviceProperties);
/**
* Stops advertising a currently advertised service.
*/
void stopAdvertising();
/**
* @return Id of the currently advertised service.
* Auto-generated.
*
* Example: "1b96c813-0ec2-4038-ab49-1ef6a1a73083"
*/
String getCurrentlyAdvertisedServiceID();
/**
* @return Address of the currently advertised service.
*
* Example: "http://146.48.82.158:8080/ecloud-service-uis-rest-0.3-SNAPSHOT"
*/
String getCurrentlyAdvertisedServiceAddress();
}