org.sblim.cimclient.discovery

Class AdvertisementCatalog

public class AdvertisementCatalog extends Object

Class AdvertisementCatalog implements a catalog for wbem service advertisements. In practise we usually have multiple advertisements for a single service, because the DMTF mandates an advertisement per remote service access point (e.g. http, https, rmi). This class tries to ease the management of this by indexing services by the unique service id and therefore surfacing which advertisements belong to the same service. The application might then choose it's preferred communication mechanism.

Since: 2.0.2

UNKNOWN: No thread synchronization provided, this is the responsibility of the caller.

Nested Class Summary
static interfaceAdvertisementCatalog.EventListener
Interface EventListener specifies listener that are called when an advertisement is added to or removed from the catalog, expires or is renewed.
Field Summary
static intEVENT_ADD
Event code when advertisement is added
static intEVENT_EXPIRE
Event code when advertisement expires
static intEVENT_REMOVE
Event code when advertisement is removed
static intEVENT_RENEW
Event code when advertisement is renewed
Constructor Summary
AdvertisementCatalog()
Ctor.
Method Summary
voidaddAdvertisements(WBEMServiceAdvertisement[] pAdvertisements)
Adds new advertisements to the catalog.
voidaddEventListener(AdvertisementCatalog.EventListener pListener)
Adds a listener for "add" events.
WBEMServiceAdvertisementgetAdvertisement(String pId, WBEMProtocol[] pProtocols)
Returns the advertisement from the catalog corresponding to a given id and with the protocol preferred most.
WBEMServiceAdvertisement[]getAdvertisementsByDirectory(String pDirectory)
Returns the advertisements from the catalog corresponding to a given directory
WBEMServiceAdvertisement[]getAdvertisementsById(String pId)
Returns the advertisements from the catalog corresponding to a given id
String[]getKnownIds()
Returns an array of service ids known by this catalog
voidrefreshAdvertisements(String[] pDirectory, WBEMServiceAdvertisement[] pAdvertisements)
Refreshes the advertisements from a given directory.
voidremoveEventListener(AdvertisementCatalog.EventListener pListener)
Removes a listener
voidremoveExpired(String pDirectory)
Removes the expired advertisements from the catalog.
StringtoString()

Field Detail

EVENT_ADD

public static int EVENT_ADD
Event code when advertisement is added

EVENT_EXPIRE

public static int EVENT_EXPIRE
Event code when advertisement expires

EVENT_REMOVE

public static int EVENT_REMOVE
Event code when advertisement is removed

EVENT_RENEW

public static int EVENT_RENEW
Event code when advertisement is renewed

Constructor Detail

AdvertisementCatalog

public AdvertisementCatalog()
Ctor.

Method Detail

addAdvertisements

public void addAdvertisements(WBEMServiceAdvertisement[] pAdvertisements)
Adds new advertisements to the catalog. Existing advertisments sharing concrete type, url and directory are replaced.

Parameters: pAdvertisements The new advertisements

addEventListener

public void addEventListener(AdvertisementCatalog.EventListener pListener)
Adds a listener for "add" events. The listener will be called whenever a advertisement is added to the catalog.

Parameters: pListener The listener

getAdvertisement

public WBEMServiceAdvertisement getAdvertisement(String pId, WBEMProtocol[] pProtocols)
Returns the advertisement from the catalog corresponding to a given id and with the protocol preferred most.

Parameters: pId The service id pProtocols An array containing the desired protocols in order of preference. If a service doesn't advertise any of the given protocols this service returns null.

Returns: The corresponding advertisement

getAdvertisementsByDirectory

public WBEMServiceAdvertisement[] getAdvertisementsByDirectory(String pDirectory)
Returns the advertisements from the catalog corresponding to a given directory

Parameters: pDirectory The directory service

Returns: The corresponding advertisements

getAdvertisementsById

public WBEMServiceAdvertisement[] getAdvertisementsById(String pId)
Returns the advertisements from the catalog corresponding to a given id

Parameters: pId The service id

Returns: The corresponding advertisements

getKnownIds

public String[] getKnownIds()
Returns an array of service ids known by this catalog

Returns: The service ids

refreshAdvertisements

public void refreshAdvertisements(String[] pDirectory, WBEMServiceAdvertisement[] pAdvertisements)
Refreshes the advertisements from a given directory. All existing advertisements from this directory are deleted first before the new ones are added.

Parameters: pDirectory The directory services we got the advertisements from pAdvertisements The advertisments

removeEventListener

public void removeEventListener(AdvertisementCatalog.EventListener pListener)
Removes a listener

Parameters: pListener The listener to remove

removeExpired

public void removeExpired(String pDirectory)
Removes the expired advertisements from the catalog.

Parameters: pDirectory When not null only the expired advertisements of the given directory are removed. Otherwise all expired advertisements are removed.

toString

public String toString()
Copyright © 2005, 2009 IBM Corporation. All Rights Reserved.