/******************************************************************************* * Copyright (c) 2015 Composent, Inc. and others. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Composent, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.ecf.osgi.services.remoteserviceadmin; import org.eclipse.ecf.discovery.identity.IServiceID; /** * @since 4.3 */ public interface IEndpointDescriptionLocator { /** * Get endpoints discovered by this endpoint locator * @return EndpointDescription[] of previously discovered endpoint. Will not return null, * but may return empty array. */ EndpointDescription[] getDiscoveredEndpoints(); /** * Get the service ID associated with the given endpoint description. * * @param endpointDescription endpoint description * @return IServiceID associated discovered endpoint description. Will * return <code>null</code> if no associated serviceID */ IServiceID getNetworkDiscoveredServiceID(EndpointDescription endpointDescription); /** * Discover the given endpointDescription. This method will not block * and will result in local EndpointEventListeners to be notified that the * given endpointDescription is discovered. * about * @param endpointDescription must not be null */ void discoverEndpoint(EndpointDescription endpointDescription); /** * Update the given endpointDescription. This method will not block * and will result in local EndpointEventListeners to be notified that the * given endpointDescription is updated. * about * @param endpointDescription must not be null */ void updateEndpoint(EndpointDescription endpointDescription); /** * Remove the given endpointDescription. This method will not block * and will result in local EndpointEventListeners to be notified that the * given endpointDescription is removed. * about * @param endpointDescription must not be null */ void undiscoverEndpoint(EndpointDescription endpointDescription); }