/// <summary> /// Constructs a signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced signal property</param> public SignalRef(ISignalOrPortDescriptor desc, EReferencedProperty prop) { Contract.Requires(desc != null); Desc = desc; Prop = prop; Indices = new List <Expression[]>(); IndexSample = new IndexSpec(); IsStaticIndex = true; }
/// <summary> /// Constructs a signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced signal property</param> /// <param name="indices">indices to apply</param> /// <param name="indexSample">sample index</param> /// <param name="isStaticIndex">whether the indices are static (i.e.) constant, in which case the sample index can be taken /// for granted</param> public SignalRef(ISignalOrPortDescriptor desc, EReferencedProperty prop, IEnumerable <Expression[]> indices, IndexSpec indexSample, bool isStaticIndex) { Contract.Requires(desc != null); Contract.Requires(indices != null); Contract.Requires(indexSample != null); Contract.Requires(indices.Count() == indexSample.Indices.Length); Desc = desc; Prop = prop; Indices = indices.ToList(); IndexSample = indexSample; IsStaticIndex = isStaticIndex; }
/// <summary> /// Creates a new signal reference literal. /// </summary> /// <param name="signal">reference signal instance</param> /// <param name="prop">referenced property</param> public static SignalRef Create(SignalBase signal, EReferencedProperty prop) { Contract.Requires(signal != null); return Create(signal.Descriptor, prop); }
/// <summary> /// Creates a new signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced property</param> public static SignalRef Create(ISignalOrPortDescriptor desc, EReferencedProperty prop) { Contract.Requires(desc != null); return new SignalRef(desc, prop); }
/// <summary> /// Constructs a signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced signal property</param> /// <param name="indices">indices to apply</param> /// <param name="indexSample">sample index</param> /// <param name="isStaticIndex">whether the indices are static (i.e.) constant, in which case the sample index can be taken /// for granted</param> public SignalRef(ISignalOrPortDescriptor desc, EReferencedProperty prop, IEnumerable<Expression[]> indices, IndexSpec indexSample, bool isStaticIndex) { Contract.Requires(desc != null); Contract.Requires(indices != null); Contract.Requires(indexSample != null); Contract.Requires(indices.Count() == indexSample.Indices.Length); Desc = desc; Prop = prop; Indices = indices.ToList(); IndexSample = indexSample; IsStaticIndex = isStaticIndex; }
/// <summary> /// Constructs a signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced signal property</param> public SignalRef(ISignalOrPortDescriptor desc, EReferencedProperty prop) { Contract.Requires(desc != null); Desc = desc; Prop = prop; Indices = new List<Expression[]>(); IndexSample = new IndexSpec(); IsStaticIndex = true; }
/// <summary> /// Creates a new signal reference literal. /// </summary> /// <param name="signal">reference signal instance</param> /// <param name="prop">referenced property</param> public static SignalRef Create(SignalBase signal, EReferencedProperty prop) { Contract.Requires(signal != null); return(Create(signal.Descriptor, prop)); }
/// <summary> /// Creates a new signal reference literal. /// </summary> /// <param name="desc">referenced descriptor</param> /// <param name="prop">referenced property</param> public static SignalRef Create(ISignalOrPortDescriptor desc, EReferencedProperty prop) { Contract.Requires(desc != null); return(new SignalRef(desc, prop)); }