/// <summary> /// Инициализирует новый шаблон конструкции типа a_a_f /// </summary> /// <param name="a1">тип начального sc-элемента</param> /// <param name="a2">тип входящей дуги</param> /// <param name="f">адрес конечного sc-элемента</param> /// <remarks> /// <para>На рисунке показаны порядок перечисления и обозначения элементов шаблона</para> /// <para><b>scg код шаблона выглядит так:</b></para> /// <img src="media/template_3_aaf.png" /> /// </remarks> public ConstructionTemplate(ElementType a1, ElementType a2, ScAddress f) : this(ConstructionTemplateType.Assign_Assign_Fixed) { elements.Add(new ElementTypeArgument(a1)); elements.Add(new ElementTypeArgument(a2)); elements.Add(f); fixedCount = 1; }
/// <summary> /// Инициализирует новый шаблон конструкции типа f_a_f /// </summary> /// <param name="f1">адрес начального sc-элемента</param> /// <param name="a1">тип искомой дуги</param> /// <param name="f2">адрес конечного sc-элемента</param> /// <remarks> /// <para>На рисунке показаны порядок перечисления и обозначения элементов шаблона</para> /// <para><b>scg код шаблона выглядит так:</b></para> /// <img src="media/template_3_faf.png" /> /// </remarks> public ConstructionTemplate(ScAddress f1, ElementType a1, ScAddress f2) : this(ConstructionTemplateType.Fixed_Assign_Fixed) { elements.Add(f1); elements.Add(new ElementTypeArgument(a1)); elements.Add(f2); fixedCount = 2; }
/// <summary> /// Получает значение события из массива байт. /// </summary> /// <param name="bytes">массив байт</param> /// <param name="offset">смещение в массиве</param> /// <returns></returns> public static ScEvent Parse(byte[] bytes, int offset) { return(bytes.Length >= SctpProtocol.ScEventLength + offset ? new ScEvent( SubscriptionId.Parse(bytes, offset), ScAddress.Parse(bytes, offset + SctpProtocol.SubscriptionIdLength), ScAddress.Parse(bytes, offset + SctpProtocol.SubscriptionIdLength + SctpProtocol.ScAddressLength)) : null); }
/// <summary> /// Инициализирует новый шаблон конструкции типа f_a_a_a_a /// </summary> /// <param name="f">адрес первого sc-элемента</param> /// <param name="a1">тип второго sc-элемента конструкции</param> /// <param name="a2">тип третьего sc-элемента конструкции</param> /// <param name="a3">тип четвертого sc-элемента конструкции</param> /// <param name="a4">тип пятого sc-элемента конструкции</param> /// <remarks> /// <para>На рисунке показаны порядок перечисления и обозначения элементов шаблона</para> /// <para><b>scg код шаблона выглядит так:</b></para> /// <img src="media/template_5_faaaa.png" /> /// </remarks> public ConstructionTemplate(ScAddress f, ElementType a1, ElementType a2, ElementType a3, ElementType a4) : this(ConstructionTemplateType.Fixed_Assign_Assign_Assign_Assign) { elements.Add(f); elements.Add(new ElementTypeArgument(a1)); elements.Add(new ElementTypeArgument(a2)); elements.Add(new ElementTypeArgument(a3)); elements.Add(new ElementTypeArgument(a4)); fixedCount = 1; }
/// <summary> /// Инициализирует новое событие. /// </summary> /// <param name="subscriptionId">id подписки</param> /// <param name="elementAddress">адрес элемента</param> /// <param name="arcAddress">адрес дуги</param> public ScEvent(SubscriptionId subscriptionId, ScAddress elementAddress, ScAddress arcAddress) { this.subscriptionId = subscriptionId; this.elementAddress = elementAddress; this.arcAddress = arcAddress; }