/// <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;
 }
Beispiel #3
0
 /// <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;
 }
Beispiel #5
0
 /// <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;
 }