Package org.eclipse.ecf.discovery
Class AbstractDiscoveryContainerAdapter
java.lang.Object
org.eclipse.ecf.core.AbstractContainer
org.eclipse.ecf.discovery.AbstractDiscoveryContainerAdapter
- All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable,IContainer,IIdentifiable,IDiscoveryAdvertiser,IDiscoveryLocator
- Direct Known Subclasses:
DnsSdDiscoveryContainerAdapter,JSLPDiscoveryContainer
public abstract class AbstractDiscoveryContainerAdapter
extends AbstractContainer
implements IDiscoveryLocator, IDiscoveryAdvertiser
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SetCollection of service listeners.protected final MapMap of service type to collection of service listeners.protected final Stringprotected final CollectionCollection of service type listeners.Fields inherited from interface org.eclipse.ecf.discovery.IDiscoveryAdvertiser
CONTAINER_NAMEFields inherited from interface org.eclipse.ecf.discovery.IDiscoveryLocator
CONTAINER_NAME -
Constructor Summary
ConstructorsConstructorDescriptionAbstractDiscoveryContainerAdapter(String aNamespaceName, DiscoveryContainerConfig aConfig) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddServiceListener(IServiceTypeID aType, IServiceListener aListener) Add a service listener.voidaddServiceListener(IServiceListener aListener) Add a service listener.voidaddServiceTypeListener(IServiceTypeListener aListener) Add a service type listener.protected voidvoiddispose()Dispose this IContainer instance.protected voidfireServiceDiscovered(IServiceEvent aServiceEvent) CallsIServiceListener.serviceDiscovered(IServiceEvent)for all registeredIServiceListenerprotected voidfireServiceTypeDiscovered(IServiceTypeEvent aServiceTypeEvent) CallsIServiceTypeListener.serviceTypeDiscovered(IServiceTypeEvent)for all registeredIServiceTypeListenerprotected voidfireServiceUndiscovered(IServiceEvent aServiceEvent) CallsIServiceListener.serviceUndiscovered(IServiceEvent)for all registeredIServiceListenerorg.eclipse.equinox.concurrent.future.IFuturegetAsyncServiceInfo(IServiceID service) Asynchronously retrieve info about the serviceorg.eclipse.equinox.concurrent.future.IFutureAsynchronously get service info about all known servicesorg.eclipse.equinox.concurrent.future.IFutureAsynchronously get service info about all known services of given service typeorg.eclipse.equinox.concurrent.future.IFutureAsynchronously get service info about all known services of given service typeprotected DiscoveryContainerConfigGet the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls toIContainer.connect(ID, IConnectContext).abstract StringgetID()Return the ID for this 'identifiable' object.protected CollectiongetListeners(IServiceTypeID aServiceType) Joins theCollectionofIServiceListeners interested in anyIServiceTypeIDwith theCollectionof theIServiceListenerregistered for the givenIServiceTypeIDprotected IServiceEventgetServiceEvent(IServiceInfo iServiceInfo, ID id) Get a Namespace for services associated with this discovery container adapter.Purges the underlying IServiceInfo cache if available in the current providervoidremoveServiceListener(IServiceTypeID aType, IServiceListener aListener) Remove a service listener.voidremoveServiceListener(IServiceListener aListener) Remove a service listener.voidremoveServiceTypeListener(IServiceTypeListener aListener) Remove a service type listener.voidUnregister all previously registered service.Methods inherited from class org.eclipse.ecf.core.AbstractContainer
addListener, fireContainerEvent, getAdapter, getPasswordFromConnectContext, removeListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.ecf.core.IContainer
connect, disconnect, getConnectedIDMethods inherited from interface org.eclipse.ecf.discovery.IDiscoveryAdvertiser
registerService, unregisterServiceMethods inherited from interface org.eclipse.ecf.discovery.IDiscoveryLocator
getServiceInfo, getServices, getServices, getServiceTypes
-
Field Details
-
allServiceListeners
Collection of service listeners. NOTE: Access to this collection is synchronized, so subclasses should take this into account. -
serviceListeners
Map of service type to collection of service listeners. NOTE: Access to this map is synchronized, so subclasses should take this into account. -
servicesNamespaceName
-
serviceTypeListeners
Collection of service type listeners. NOTE: Access to this collection is synchronized, so subclasses should take this into account.
-
-
Constructor Details
-
AbstractDiscoveryContainerAdapter
- Parameters:
aNamespaceName- namespace nameaConfig- discovery container config
-
-
Method Details
-
addServiceListener
Description copied from interface:IDiscoveryLocatorAdd a service listener. The given listener will have its method called when a service is discovered.- Specified by:
addServiceListenerin interfaceIDiscoveryLocator- Parameters:
aListener- IServiceListener to be notified. Must not benull.
-
getServiceEvent
- Parameters:
iServiceInfo- service infoid- id- Returns:
- IServiceEvent created service event
- Since:
- 5.0
-
addServiceListener
Description copied from interface:IDiscoveryLocatorAdd a service listener. The given listener will have its method called when a service with a type matching that specified by the first parameter is discovered.- Specified by:
addServiceListenerin interfaceIDiscoveryLocator- Parameters:
aType- String type to listen for. Must not benull. Must be formatted according to this specific IDiscoveryContaineraListener- IServiceListener to be notified. Must not benull.
-
addServiceTypeListener
Description copied from interface:IDiscoveryLocatorAdd a service type listener. The given listener will have its method called when a service type is discovered.- Specified by:
addServiceTypeListenerin interfaceIDiscoveryLocator- Parameters:
aListener- the listener to be notified. Must not benull.
-
clearListeners
protected void clearListeners() -
dispose
public void dispose()Description copied from interface:IContainerDispose this IContainer instance. The container instance will be made inactive after the completion of this method and will be unavailable for subsequent usage.- Specified by:
disposein interfaceIContainer- Overrides:
disposein classAbstractContainer
-
fireServiceDiscovered
CallsIServiceListener.serviceDiscovered(IServiceEvent)for all registeredIServiceListener- Parameters:
aServiceEvent- TheIServiceEventto send along the call
-
fireServiceTypeDiscovered
CallsIServiceTypeListener.serviceTypeDiscovered(IServiceTypeEvent)for all registeredIServiceTypeListener- Parameters:
aServiceTypeEvent- TheIServiceTypeEventto send along the call
-
fireServiceUndiscovered
CallsIServiceListener.serviceUndiscovered(IServiceEvent)for all registeredIServiceListener- Parameters:
aServiceEvent- TheIServiceEventto send along the call
-
getConfig
- Returns:
- The
DiscoveryContainerConfigof thisIDiscoveryContainerAdapter
-
getConnectNamespace
Description copied from interface:IContainerGet the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls toIContainer.connect(ID, IConnectContext). If this method returnsnull, then it means thatnullis expected as a valid parameter in subsequent calls toIContainer.connect(ID, IConnectContext). If this method returns a non-nullNamespace, then thetargetIDparameter inIContainer.connect(ID, IConnectContext)must be non-nullinstance created of the returned Namespace.- Specified by:
getConnectNamespacein interfaceIContainer- Returns:
- Namespace the namespace associated with subsequent calls to
IContainer.connect(ID, IConnectContext). Ifnull, then thetargetIDinstances passed toIContainer.connect(ID, IConnectContext)may benull. If notnull, thentargetIDinstances passed toIContainer.connect(ID, IConnectContext)must be instances of the returned Namespace.
-
getID
Description copied from interface:IIdentifiableReturn the ID for this 'identifiable' object. The returned ID should be unique within its namespace. May returnnull.- Specified by:
getIDin interfaceIIdentifiable- Returns:
- the ID for this identifiable object. May return
null.
-
getContainerName
- Returns:
- The name of this discovery container
- Since:
- 4.0
-
getListeners
Joins theCollectionofIServiceListeners interested in anyIServiceTypeIDwith theCollectionof theIServiceListenerregistered for the givenIServiceTypeID- Parameters:
aServiceType- TheIServiceTypeIDfor which theIServiceListeners are returned- Returns:
- All
IServiceListeners interested in the givenIServiceTypeID
-
getServicesNamespace
Description copied from interface:IDiscoveryLocatorGet a Namespace for services associated with this discovery container adapter. The given Namespace may be used via IServiceIDFactory to create IServiceIDs rather than simple IDs. For example:IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(container.getServicesNamespace(), serviceType, serviceName);- Specified by:
getServicesNamespacein interfaceIDiscoveryAdvertiser- Specified by:
getServicesNamespacein interfaceIDiscoveryLocator- Returns:
- Namespace for creating service IDs. Will not be
null.
-
removeServiceListener
Description copied from interface:IDiscoveryLocatorRemove a service listener. Remove the listener from this container- Specified by:
removeServiceListenerin interfaceIDiscoveryLocator- Parameters:
aListener- IServiceListener listener to be removed. Must not benull.
-
removeServiceListener
Description copied from interface:IDiscoveryLocatorRemove a service listener. Remove the listener associated with the type specified by the first parameter.- Specified by:
removeServiceListenerin interfaceIDiscoveryLocator- Parameters:
aType- String of the desired type to remove the listener. Must not benull. Must be formatted according to this specific IDiscoveryContaineraListener- IServiceListener listener to be removed. Must not benull.
-
removeServiceTypeListener
Description copied from interface:IDiscoveryLocatorRemove a service type listener. Remove the type listener.- Specified by:
removeServiceTypeListenerin interfaceIDiscoveryLocator- Parameters:
aListener- IServiceTypeListener to be removed. Must not benull.
-
unregisterAllServices
public void unregisterAllServices()Description copied from interface:IDiscoveryAdvertiserUnregister all previously registered service.- Specified by:
unregisterAllServicesin interfaceIDiscoveryAdvertiser- Since:
- 3.0
- See Also:
-
purgeCache
Description copied from interface:IDiscoveryLocatorPurges the underlying IServiceInfo cache if available in the current provider- Specified by:
purgeCachein interfaceIDiscoveryLocator- Returns:
- The previous cache content
- Since:
- 3.0
- See Also:
-
getAsyncServiceInfo
Description copied from interface:IDiscoveryLocatorAsynchronously retrieve info about the service- Specified by:
getAsyncServiceInfoin interfaceIDiscoveryLocator- Parameters:
service- IServiceID of the service to get info about. Must not benull.- Returns:
- IFuture a future status wrapping an IServiceInfo or
nullif no information retrievable. - Since:
- 3.0
- See Also:
-
getAsyncServiceTypes
public org.eclipse.equinox.concurrent.future.IFuture getAsyncServiceTypes()Description copied from interface:IDiscoveryLocatorAsynchronously get service info about all known services of given service type- Specified by:
getAsyncServiceTypesin interfaceIDiscoveryLocator- Returns:
- IFuture wrapping an IServiceTypeID[]. The resulting array of
service type IDs will not be
null. May be of length 0. - Since:
- 3.0
- See Also:
-
getAsyncServices
public org.eclipse.equinox.concurrent.future.IFuture getAsyncServices()Description copied from interface:IDiscoveryLocatorAsynchronously get service info about all known services- Specified by:
getAsyncServicesin interfaceIDiscoveryLocator- Returns:
- IFuture wrapping an IServiceTypeID[]. The resulting array of
service type IDs will not be
null. May be of length 0. - Since:
- 3.0
- See Also:
-
getAsyncServices
Description copied from interface:IDiscoveryLocatorAsynchronously get service info about all known services of given service type- Specified by:
getAsyncServicesin interfaceIDiscoveryLocator- Parameters:
type- IServiceTypeID defining the type of service we are interested in getting service info about. Must not benull- Returns:
- IFuture wrapping an IServiceTypeID[]. The resulting array of
service type IDs will not be
null. May be of length 0. - Since:
- 3.0
- See Also:
-