public final class ConfigurationService extends Object implements ServiceLifecycle, AgentPresenceListener, AgentService, HasDataProviderInfos, HasLifecycle, BusMessagePreProcessor, DataProviderDictionaryService.DataProviderDictionaryListener
ConfigurationParameter are found
within the subsystem or its components. It is responsible for modifying
configuration parameters of the subsystems and for interacting with the
configuration service.
The configuration API covers the following actions :
ConfigurationBulkChangeHandler.
ConfigurationParameter annotation.
If the component implements
ConfigurationBulkChangeHandler, its validation
method is invoked. If the validation step fails,
BulkValidationException is thrown, submitted changes are not dropped
and the bulk change process is interrupted If out of the validation step,
some parameters have been detected to have changed, a
BulkSettingException is thrown, submitted changes are dropped and an
alarm is raised, indicating an operator error.
ConfigurationBulkChangeHandler, its setting
method is invoked. Remaining parameters to be set are set through their
corresponding
ConfigurationParameterChanger
annotated method if present, or directly set by reflection. If the validation
step fails, the submitted changes are dropped, an alarm indicating an
operator error is raised and a BulkSettingException is thrown. If at
the end of the process, the values of the parameters don't match the one
expected by the submitted changes, the submitted changes are dropped, an
alarm indicating an operator error (id CCSCFGOP) is raised and
a BulkSettingException is thrown.
Each of the methods of this object that involve changing parameters are internally following the bulk change process, and are therefore likely to throw one of the exceptions mentioned above, or to raise one of the alarms mentioned above.
CONFIGURED.
When configuration tags (or full configurations) are loaded successfully, the state is
CONFIGURED
Changing one or more parameters makes the subsystem go into
DIRTY state
Saving the changes makes the subsystem go into CONFIGURED
The commands that cause changes of parameters are only available when in
engineering mode. The subsystem can switch from engineering mode to normal
mode only if the state is CONFIGURED.
ConfigurationServiceException if the configuration service is
unavailable. In that case an alarm with id CCSCFGSRV will also
be raised.
ConfigurationInfo publication representing the
resulting configuration state| Modifier and Type | Class and Description |
|---|---|
class |
ConfigurationService.ConfigurationLock
Encapsulates a reader lock on the subsystem configuration.
|
class |
ConfigurationService.ConfigurationWriteLock
Encapsulates a writer lock on the subsystem configuration.
|
static class |
ConfigurationService.ConvertedParameterizedType |
| Modifier and Type | Field and Description |
|---|---|
protected Agent |
agent
GUARDED BY CCS bootstrap (ref), thread safety (object).
|
| Constructor and Description |
|---|
ConfigurationService() |
| Modifier and Type | Method and Description |
|---|---|
ConfigurationService.ConfigurationLock |
acquireConfigurationLock()
Acquires a read lock on the subsystem configuration.
|
ConfigurationService.ConfigurationWriteLock |
acquireConfigurationWriteLock()
Acquires a writer lock on the subsystem configuration.
|
void |
addConfigurationListener(ConfigurationListener listener)
Add a configuration listener.
|
ConfigurationDescription |
buildConfigurationDescription(ConfigurationListener.ConfigurationOperation co,
Options options,
String... taggedCategories) |
ConfigurationInfo.Builder |
buildConfigurationInfo(ConfigurationView newView)
See the description for
buildConfigurationInfo(org.lsst.ccs.config.ConfigurationView, boolean)
which this method calls with a second argument of true (new configuration must be complete). |
ConfigurationInfo.Builder |
buildConfigurationInfo(ConfigurationView newView,
boolean mustBeComplete)
Takes a configuration view and extracts from it the information needed to construct an instance
of
ConfigurationInfo, which is what later gets sent on the CCS status bus. |
void |
change(String componentName,
String parameterName,
Object value)
Single change of parameter.
|
void |
commitBulkChange()
Initiates the bulk change process of the submitted changes.
|
void |
commitBulkChangeForComponent(String component) |
static Type |
convertTypeNameToType(String typeName) |
void |
dataProviderDictionaryUpdate(DataProviderDictionaryService.DataProviderDictionaryEvent evt)
Invoked when there is a change in the dictionary of an Agent
on the buses.
|
void |
disconnected(AgentInfo... agents)
Invoked when one or more agents are disconnected from this cluster, either
because the shutdown or because they were lost.
|
void |
dropAllSubmittedChanges()
Drops the submitted changes for all components of the subsystem.
|
String |
dropChanges(Options options,
String... categories)
Sets all parameters that belong to one of the specified categories to the
value defined by the current running configuration for this category.
|
void |
dropSubmittedChangesForComponent(String name)
Drops the submitted changes for a given component of the subsystem.
|
String |
getAgentServiceName()
Get the name of this service.
|
List<String> |
getAllConfigurableComponentsWithTrailingSlash()
This method is to be used exclusively by the command processing code to
fetch all the allowed values for the component argument.
|
Map<String,Map<String,String>> |
getAllSubmittedChanges()
Returns the current submitted changes for each component.
|
Properties |
getBuildProperties() |
static Properties |
getBuildProperties(String descriptionName,
String initialConfig)
Utility method to fetch build level properties.
|
Bus |
getBus()
The Bus this BusMessagePreProcessor applies to.
|
Set<String> |
getCategories()
Returns the set of categories the subsystem's configurable parameters are
split into.
|
List<ConfigurationParameterHandler> |
getCategoryParameters(String category)
CORE ONLY.
|
ComponentConfigurationEnvironment |
getComponentConfigurationEnvironment(String name)
Gets a configuration service dedicated to a specific component
|
ConfigurationDAOWrapper |
getConfigurationDAOWrapper() |
ConfigurationDescription |
getConfigurationDescription() |
ConfigurationDescription |
getConfigurationDescription(Options options,
String... categories)
Get the configuration description.
|
ConfigurationInfo |
getConfigurationInfo()
Gets the current configurationInfo object depicting the state of the
configuration parameters of this subsystem.
|
ConfigurationLoadedData |
getConfigurationLoadedData()
Get the ConfigurationLoadedData object that describes the data as it
has been loaded/saved for the current description.
|
String |
getConfigurationParameterValue(String componentName,
String parameterName)
Get the current value of a configuration parameter by providing its component
name and the parameter name.
|
Map<String,String> |
getConfigurationParameterValuesForComponent(String componentName,
String... categories)
Returns the current values of the configuration parameters that belong to
componentName and that belong to the specified categories. |
List<DataProviderInfo> |
getDataProviderInfos()
Get the list of available
DataProviderInfos. |
String |
getDefaultSourceForCategory(String category) |
ConfigurationView |
getInitialView()
CORE ONLY.
|
ConfigurationParameterHandler |
getParameterByPath(ParameterPath path)
CORE ONLY.
|
Map<String,String> |
getSubmittedChangesForComponent(String name)
Gets the submitted changes for the specified component
|
boolean |
isParameterReadOnly(String componentName,
String parameterName) |
String |
loadCategories(Options options,
String... taggedCategories)
Loads a configuration for the specified categories.
|
String |
loadCategories(String... taggedCategories) |
void |
postInit()
Called from the enclosing
Subsystem at construction
phase. |
void |
preBuild() |
void |
preInit() |
BusMessage |
preProcessMessage(BusMessage msg)
Pre-process the incoming BusMessage and return the message to be
forwarded to the bus message listeners.
|
void |
preStart()
Called from the enclosing
Subsystem when
org.lsst.ccs.Subsystem#start() has been called. |
String |
printConfigurationParameters(Options options,
String... categories)
Returns the current values of the configuration parameters that belong to
the specified categories.
|
String |
printConfigurationParameters(String... categories) |
String |
printConfigurationParametersForComponent(Options options,
String component,
String... categories) |
void |
publishConfigurationInfo()
Publishes the current configurationInfo object on the status bus.
|
void |
publishConfigurationInfo(ConfigurationData configData) |
void |
publishDataProviderCurrentData(AgentInfo... agents)
Publish the current data of all the
DataProviderInfos managed
by this object for the provided list of Agents. |
void |
removeConfigurationListener(ConfigurationListener listener)
Remove a configuration listener.
|
void |
requestConfigurationDataIfNeededForAgent(String agentName)
Method to request the publication of configuration data for a given
agent if needed.
|
String |
saveCategories(Options options,
String... categoryTags)
Saves the current value of each parameter that belongs to one of the
specified categories in the current running configuration for this category.
|
void |
saveChanges() |
void |
saveChanges(Options options)
Saves the current value of each parameter that has changed from the last configuration load.
|
void |
saveChangesForCategories(String... categoryTags) |
boolean |
saveInitialConfiguration()
CORE ONLY.
|
void |
setReadOnlyParameter(String componentName,
String parameterName,
Object value)
Set ReadOnly Configuration Parameter.
|
void |
shutdown()
Called from the enclosing
Subsystem when
org.lsst.ccs.Subsystem#shutdown() has been called. |
void |
submitChange(String componentName,
String parameterName,
Object value)
Submits a configuration parameter change.
|
void |
submitChanges(String componentName,
Map<String,Object> changes)
Submits several parameter changes.
|
ConfigurationService.ConfigurationLock |
tryAcquireConfigurationLock(long time,
TimeUnit unit)
Acquires a configuration read lock if it is free within the given waiting
time and the current thread has not been interrupted.
|
ConfigurationService.ConfigurationWriteLock |
tryAcquireConfigurationWriteLock(long time,
TimeUnit unit)
Acquires a configuration writer lock if it is available within the given waiting
time and the current thread has not been interrupted.
|
String |
updateCategories(Options options,
String... taggedCategories)
Updated the specified categories.
|
String |
updateCategories(String... taggedCategories) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitafterBuild, afterInit, afterStart, preShutdownconnected, connecting, disconnectingstartForAgentfinalizeDictionarybuild, init, postBuild, postShutdown, postStart, start@LookupField(strategy=TOP) protected Agent agent
public String getAgentServiceName()
AgentServicegetAgentServiceName in interface AgentServicepublic static Properties getBuildProperties(String descriptionName, String initialConfig)
descriptionName - The description name (groovy file)initialConfig - The initial configuration stringpublic Properties getBuildProperties()
public void shutdown()
HasLifecycleSubsystem when
org.lsst.ccs.Subsystem#shutdown() has been called. At the time it
is called PhaseState is CLOSING.
It should be overridden to free non hardware related resources.shutdown in interface HasLifecyclepublic void preBuild()
preBuild in interface ServiceLifecyclepublic void preInit()
preInit in interface ServiceLifecyclepublic void postInit()
HasLifecycleSubsystem at construction
phase. This method is called after init and postInit have
been called on this component's children.postInit in interface HasLifecyclepublic void preStart()
ServiceLifecycleSubsystem when
org.lsst.ccs.Subsystem#start() has been called.
The preceding lifecycle step is HasLifecycle.postInit()
The following lifecycle step is HasLifecycle.start()
At the time it is called :
PhaseState is
INITIALIZING
connection with the messaging layer is effective, the enclosing
subsystem has started StatusHeartBeat
publication
preStart in interface ServiceLifecyclepublic List<DataProviderInfo> getDataProviderInfos()
HasDataProviderInfosDataProviderInfos.getDataProviderInfos in interface HasDataProviderInfosDataProviderInfospublic void publishDataProviderCurrentData(AgentInfo... agents)
HasDataProviderInfosDataProviderInfos managed
by this object for the provided list of Agents.publishDataProviderCurrentData in interface HasDataProviderInfosagents - The array of AgentInfo for which we are requesting to publish the data.@Command(category=CORE, type=QUERY, level=0) public String getConfigurationParameterValue(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String componentName, String parameterName)
componentName - The component the parameter belongs to.parameterName - The name of the configuration parameter.@Command(category=CORE, type=QUERY, level=0) @Option(name="dirtyOnly",description="Only print information about dirty configuration parameters") @Option(name="originTag",description="Show in which tag the parameter is defined") public String printConfigurationParameters(Options options, String... categories)
options - The provided command optionscategories - The categories to print. If empty or null, all categories are displayed.@Command(description="displays the current values of the parameters that belong to the given categories for the provided component", type=QUERY, category=CORE, level=0) @Option(name="dirtyOnly",description="Only print information about dirty configuration parameters") @Option(name="originTag",description="Show in which tag the parameter is defined") public String printConfigurationParametersForComponent(Options options, @Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String component, String... categories)
public void saveChanges(Options options)
If it succeeds, the state will be CONFIGURED.
ConfigurationServiceException - if the configuration service is unavailable. The configuration
state does not change and the run-time changes are still
considered unsaved. In addition, an alert is raised to indicate
the configuration service unavailability.IllegalStateException - if the subsystem is not in engineering mode.public void saveChanges()
@Command(description="Saves the specified categories with a name", type=CONFIGURATION, category=CORE, level=1) @Option(name="allCategories",description="Load all categories, even the unspecified ones.") @Option(name="testRun",description="Perform a trial run of the command and report back the result.") @Option(name="originTag",description="The save is performend in the tag that last defined a configuration parameter") @Option(name="full",description="Saves all configuration parameters, rather than just the changes") public String saveCategories(Options options, @Argument(name="categoryTags",description="A list of categories or category tags") String... categoryTags)
If there were run-time changes in other categories, the state is DIRTY, otherwise CONFIGURED.
options - The Options for this operationcategoryTags - a list of categories to saveConfigurationServiceException - if the configuration service is unavailable. The configuration
state does not change and existing run-time changes are still
considered unsaved. In addition, an alert is raised to indicate
the configuration service unavailability.IllegalStateException - if the subsystem is not in engineering mode.public void saveChangesForCategories(@Argument(name="categoryTags",description="A list of categories or category tags") String... categoryTags)
@Command(name="dropChanges", description="drop unsaved changes for the specified categories", type=CONFIGURATION, category=CORE, level=1) @Option(name="allCategories",description="Load all categories, even the unspecified ones.") @Option(name="testRun",description="Perform a trial run of the command and report back the result.") public String dropChanges(Options options, @Argument(name="categories",description="A list of categories") String... categories)
First, all existing submitted changes are dropped.
options - The Options for this operationcategories - A list of categoriesConfigurationServiceException - if the configuration service is unavailable.BulkValidationException - if setting the parameters back to their configured value fails at
the validation step.BulkSettingException - if setting the parameters back to their configured value fails at
the setting step. An alert is raised.IllegalStateException - if the subsystem is not in engineering mode.@Command(description="Update the specified category tags", type=CONFIGURATION, category=CORE, level=1) @Option(name="allCategories",description="Load all categories, even the unspecified ones.") @Option(name="testRun",description="Perform a trial run of the command and report back the result.") @Option(name="dropChanges",description="Force the drop of all the outstanding changes.") public String updateCategories(Options options, @Argument(name="taggedCategories",description="a list of pairs categoryName:configurationName(version)") String... taggedCategories)
options - The Options for this operationtaggedCategories - a list of pairs categoryName:configurationName(version)ConfigurationServiceException - if the configuration service is unavailable.BulkValidationException - if setting the parameters back to their configured value fails at
the validation step.BulkSettingException - if setting the parameters back to their configured value fails at
the setting step. An alert is raised.IllegalStateException - if the subsystem is not in engineering mode.@Command(description="loads the configuration for the specified categories", type=CONFIGURATION, category=CORE, level=1) @Option(name="allCategories",description="Load all categories, even the unspecified ones.") @Option(name="dropChanges",description="Force the drop of all the outstanding changes.") @Option(name="testRun",description="Perform a trial run of the command and report back the result.") public String loadCategories(Options options, @Argument(name="taggedCategories",description="a list of pairs categoryName:configurationName(version)") String... taggedCategories)
options - The Options for this operationtaggedCategories - a list of pairs categoryName:configurationName(version)ConfigurationServiceException - if the configuration service is unavailable.BulkValidationException - if loading the configurations fails at the validation step. The
configuration state remains unchanged.BulkSettingException - if loading the configuration fails at the setting step. An alert
is raised.IllegalStateException - if the subsystem is not in engineering mode.public ConfigurationDescription buildConfigurationDescription(ConfigurationListener.ConfigurationOperation co, Options options, String... taggedCategories)
public ConfigurationLoadedData getConfigurationLoadedData()
@Command(description="return a ConfigurationInfo object", type=QUERY, category=SYSTEM, level=0) public ConfigurationInfo getConfigurationInfo()
If configuration parameters are modified outside of one of the provided configuration API commands, the changes will not be reflected in the returned ConfigurationInfo object.
@Command(description="Return the configuration description for the provided categories", type=QUERY, category=CORE, level=0) @Option(name="initial",description="Shows the initial configuration description, i.e. the one requested when the Subsystem started.") @Option(name="base",description="Shows the base configuration description") public ConfigurationDescription getConfigurationDescription(Options options, String... categories)
options - The options for this command.categories - The categories that should be contained in the ConfigurationDescription.
If no categories are provided, the ConfigurationDescription will include all
categories.public ConfigurationDescription getConfigurationDescription()
public void setReadOnlyParameter(String componentName, String parameterName, Object value)
This method is to be used when changing values of ReadOnly configuration parameters. The configuration state is unchanged.
componentName - the name of the component the parameter belongs to.parameterName - the name of the parameter.value - the new value to affect to this parameterConfigurationServiceException - if the change has not been registered to the configuration
service.@Command(description="publish a ConfigurationInfo object", type=QUERY, category=SYSTEM, level=0) public void publishConfigurationInfo()
If configuration parameters are modified outside of one of the provided configuration API command, they will not be reflected by the published ConfigurationInfo object.
public void publishConfigurationInfo(ConfigurationData configData)
@Command(description="Submits a single change to be processed immediately", type=CONFIGURATION, category=CORE, level=1) public void change(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String componentName, String parameterName, Object value)
The value is validated and the parameter is immediately set to this value, without interfering with the current set of submitted changes. If the change is effective, the configuration state goes to DIRTY.
componentName - the name of the component the parameter belongs to.parameterName - the name of the parameter.value - the new value to affect to this parameterConfigurationServiceException - if the change has not been registered to the configuration
service.BulkValidationException - if setting the parameters fails at the validation step. The
configuration state remains unchanged.BulkSettingException - if setting the parameter fails at the setting step, or if a
suspicious change is detected at the validation step, or if the
final values of the parameters is not consistent with the
performed change. Existing submitted changes are dropped and an
alert is raised.IllegalStateException - if the subsystem is not in engineering mode.public List<String> getAllConfigurableComponentsWithTrailingSlash()
@Command(description="Submits a change of parameter to be validated later", type=CONFIGURATION, category=CORE, level=1) public void submitChange(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String componentName, String parameterName, Object value)
The change will be effective once commitBulkChange is invoked and successful. This does not affect the subsystem configuration state.
componentName - the component the parameter belongs toparameterName - the parameter namevalue - the submitted parameter valueIllegalArgumentException - if componentName does not have a configurable
parameter named parameterNameIllegalStateException - if the subsystem is not in engineering mode.@Command(description="Submits changes of parameters to be validated later", type=CONFIGURATION, category=CORE, level=1) public void submitChanges(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String componentName, Map<String,Object> changes)
The changes will be effective once commitBulkChange is invoked and successful. Until then the subsystem configuration state is not changed.
componentName - the component namechanges - a map of parameter names to their submitted value. All parameters
are assumed to belong to componentNameIllegalArgumentException - if componentName does not have a configurable
parameter named parameterName@Command(name="applySubmittedChanges", description="processes the bulk change", type=CONFIGURATION, category=CORE, level=1) public void commitBulkChange()
The bulk change process is described in the class documentation. If the validation step fails, the configuration state is unchanged, as no parameters have been modified yet. If the setting step fails (an exception is thrown), the current value for each parameter is retrieved, the subsystem goes into DIRTY state if one or more have been modified and an alarm is raised, indicating an operator error. If the setting step succeeds, the subsystem goes into DIRTY state if one or more parameters have been effectively modified.
BulkValidationException - if setting the parameters fails at the validation step. The
configuration state remains unchanged. Submitted changes are not
dropped.BulkSettingException - if setting the parameter fails at the setting step, or if a
suspicious change is detected at the validation step, or if the
final values of the parameters is not consistent with the
submitted changes. In all of those cases, an alarm is raised and
the submitted changes are dropped.IllegalStateException - if the subsystem is not in engineering mode.public void commitBulkChangeForComponent(String component)
@Command(name="cancelAllSubmittedChanges", description="Drops the submitted changes for all components", type=CONFIGURATION, category=CORE, level=1) public void dropAllSubmittedChanges()
@Command(name="cancelSubmittedChangesForComponent", description="Drops the submitted changes for the given component", type=CONFIGURATION, category=CORE, level=1) public void dropSubmittedChangesForComponent(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash",description="the component name") String name)
name - the component name.IllegalArgumentException - if there is no component named name@Command(description="Returns the current submitted changes for the given component", type=CONFIGURATION, category=CORE, level=1) public Map<String,String> getSubmittedChangesForComponent(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash",description="the component name") String name)
name - the component nameIllegalArgumentException - if there is no component named name@Command(description="Returns the current submitted changes for each component", type=CONFIGURATION, category=CORE, level=1) public Map<String,Map<String,String>> getAllSubmittedChanges()
IllegalArgumentException - if there is no component named name@Command(description="returns the categories of this subsystem", type=QUERY, category=CORE, level=0) public Set<String> getCategories()
@Command(description="returns the current values for a given component that belong to the specified categories", type=QUERY, category=CORE, level=0) public Map<String,String> getConfigurationParameterValuesForComponent(@Argument(allowedValueProvider="getAllConfigurableComponentsWithTrailingSlash") String componentName, String... categories)
componentName and that belong to the specified categories.componentName - the component namecategories - regardless of the category if null.IllegalArgumentException - if there is no component named namepublic ConfigurationService.ConfigurationLock acquireConfigurationLock()
ConfigurationService.ConfigurationLock object holding the lock.public ConfigurationService.ConfigurationLock tryAcquireConfigurationLock(long time, TimeUnit unit) throws InterruptedException, TimeoutException
time - how long to wait.unit - the units in which the wait time is expressed.ConfigurationService.ConfigurationLock object holding the lockInterruptedException - if the current thread is interrupted while this lock is being
acquired.TimeoutException - if the waiting time elapsed before the lock was acquired.public ConfigurationService.ConfigurationWriteLock acquireConfigurationWriteLock()
ConfigurationService.ConfigurationWriteLock object holding the lock.public ConfigurationService.ConfigurationWriteLock tryAcquireConfigurationWriteLock(long time, TimeUnit unit) throws InterruptedException, TimeoutException
time - how long to wait.unit - the units in which the wait time is expressed.ConfigurationService.ConfigurationWriteLock object holding the lockInterruptedException - if the current thread is interrupted while
this lock is being acquired.TimeoutException - if the wait time elapses before the lock is
acquired.public ComponentConfigurationEnvironment getComponentConfigurationEnvironment(String name)
name - the name of the componentComponentConfigurationEnvironment object, providing a
component level configuration APIpublic void addConfigurationListener(ConfigurationListener listener)
listener - The ConfigurationListener to be addedpublic void removeConfigurationListener(ConfigurationListener listener)
listener - The ConfigurationListener to be addedpublic ConfigurationInfo.Builder buildConfigurationInfo(ConfigurationView newView)
buildConfigurationInfo(org.lsst.ccs.config.ConfigurationView, boolean)
which this method calls with a second argument of true (new configuration must be complete).newView - the view of the new configuration which needs a ConfigurationInfo made for it.ConfigurationInfo.ConfigurationInfopublic ConfigurationInfo.Builder buildConfigurationInfo(ConfigurationView newView, boolean mustBeComplete)
ConfigurationInfo, which is what later gets sent on the CCS status bus.newView - the view of the new configuration which needs a ConfigurationInfo made for it.mustBeComplete - true if and only if no missing parameters can be tolerated.ConfigurationInfo.ConfigurationInfopublic List<ConfigurationParameterHandler> getCategoryParameters(String category)
category - the name of the category.RuntimeException - if no such category exists.public ConfigurationParameterHandler getParameterByPath(ParameterPath path)
path - the parameter path object.IllegalArgumentException - if the parameter doesn't exist.public boolean saveInitialConfiguration()
true if it was, else false.public ConfigurationView getInitialView()
public ConfigurationDAOWrapper getConfigurationDAOWrapper()
public void dataProviderDictionaryUpdate(DataProviderDictionaryService.DataProviderDictionaryEvent evt)
DataProviderDictionaryService.DataProviderDictionaryListenerdataProviderDictionaryUpdate in interface DataProviderDictionaryService.DataProviderDictionaryListenerevt - The DataProviderDictionaryService.DataProviderDictionaryEvent
describing the nature of the change: ADDED, REMOVED.
Information about the Agent for which the change occurred,
and the new dictionary itself are contained in the event object.public BusMessage preProcessMessage(BusMessage msg)
BusMessagePreProcessorpreProcessMessage in interface BusMessagePreProcessormsg - The incoming BusMessagepublic Bus getBus()
BusMessagePreProcessorgetBus in interface BusMessagePreProcessorpublic void disconnected(AgentInfo... agents)
AgentPresenceListenerdisconnected in interface AgentPresenceListenerpublic final void requestConfigurationDataIfNeededForAgent(String agentName)
agentName - The name of the agent for which the data is needed.Copyright © 2024 LSST. All rights reserved.