/* * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton, * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY. * * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS. * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION, * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM */ package org.csstudio.dal.group; import org.csstudio.dal.AsynchronousContext; import org.csstudio.dal.DynamicValueMonitor; /** * This interface is implemented by all objects that allow access to the dynamic value. * Provides convenience acces to asyncrhonously received values. */ public interface GroupUpdateable extends AsynchronousContext { /** * Returns the last known dynamic value in object rendering. This * method does not cause the implementation to query the primary data * source and so the data that this method returns <b>must</b> be local. A * call to this method does not cause the latest timestamps to change. In * a way, this method provides a single (latest) value buffer for the * dynamic value. The "latest" is defined with respect to the timestamp * provided by the underlying implementation, or, if that is unavailable, * to the local timestamp of the data. * * @return Object the latest dynamic value in object rendering */ public Object[] getLatestReceivedValuesAsObjects(); /** * Returns the latest value change timestamp. The change is defined * by the implementation, but should normally follow the criterion that * <code>!newvalue.equals(oldvalue)</code>. * * @return long the timestamp in Java <code>System.currentTimeMillis</code> * format of the latest change in dynamic value */ public long[] getLatestValuesChangeTimestamps(); /** * Returns the time of the latest dynamic value update. An update * is either a change in dynamic value or the confirmation from the * primary data source that the value and its quality are still the same. * The timestamp must be that provided by the underlying implementation * or, if that is unavailable, it must be the local timestamp. This * definition also implies that the * <code>latestValueUpdateTimestamp</code> must be necessarily equal to or * later than the <code>latestValueChangeTimestamp</code>, since the value * may be updated without being changed, but not vice versa. * * @return long a Java <code>System.currentTimeMillis</code> style * timestamp of the latest update */ public long[] getLatestValuesUpdateTimestamps(); /** * Returns monitor which controls remote value subscriptions. * * @return monitor which controls remote value subscriptions */ public DynamicValueMonitor getDefaultMonitor(); } /* __oOo__ */