package org.yamcs.tctm;
import java.util.Collection;
import org.yamcs.parameter.ParameterValue;
/**
* Used by the ParameterDataLink to propagate processed parameters inside Yamcs.
*
*
* @author nm
*
*/
public interface ParameterSink {
/**
* Update a collection of Parameters. The parameters are provided in ParameterValue format - that means they need to have associated a XtceDB Parameter.
*
* The group is used as partition key in the recording (and can be used for retrieval as well).
*
* The (gentime,group,seqNum) has to be unique for one parameter and will be used to detect and not save duplicates.
*
* @param gentime - the generation time of the parameters
* @param group
* @param seqNum
* @param params
*/
public abstract void updateParameters(long gentime, String group, int seqNum, Collection<ParameterValue> params);
/**
* Update the parameters. Alternative method to provide ProtoBuf parameter values instead of POJO versions.
* The parameters do not need an associated XtceDB Parameter but just a FullyQualifiedName.
*
* The ParameterRecorder will use the FQN to record them. If they are sent to a processor (e.g. on a pp_realtime stream), they have
* to be found in the XtceDB for clients to be able subscribe to them. Also for triggering alarms.
*
* @param gentime
* @param group
* @param seqNum
* @param params
*/
void updateParams(long gentime, String group, int seqNum, Collection<org.yamcs.protobuf.Pvalue.ParameterValue> params);
}