/// <summary> /// Initializes a new instance of the <see cref="DealOperation"/> class. /// </summary> /// <param name="dealContent">The dealContent<see cref="object"/>.</param> public DealOperation(object dealContent) { site = ServiceSite.Server; direction = DirectionType.None; state = ((ISerialNumber)dealContent).FlagsBlock; content = (ISerialFormatter)dealContent; }
/// <summary> /// The MessageContent. /// </summary> /// <param name="content">The content<see cref="object"/>.</param> /// <param name="value">The value<see cref="object"/>.</param> /// <param name="_direction">The _direction<see cref="DirectionType"/>.</param> public void MessageContent(ref object content, object value, DirectionType _direction) { DirectionType direction = _direction; object _content = value; if (_content != null) { if (direction == DirectionType.Receive) { Type[] ifaces = _content.GetType().GetInterfaces(); if (ifaces.Contains(typeof(ISerialFormatter))) { object[] messages_ = ((ISerialFormatter)value).GetMessage(); if (messages_ != null) { int length = messages_.Length; for (int i = 0; i < length; i++) { ISerialFormatter message = ((ISerialFormatter[])messages_)[i]; ISerialFormatter head = (ISerialFormatter)((ISerialFormatter[])messages_)[i].GetHeader(); message.SerialCount = head.SerialCount; message.DeserialCount = head.DeserialCount; } _content = messages_; } } } } content = _content; }
/// <summary> /// The SrvRecMsg. /// </summary> /// <param name="buffer">The buffer<see cref="ISerialBuffer"/>.</param> private void SrvRecMsg(ISerialBuffer buffer) { object serialCardsObj = ((object[])transaction.MessageReceived.Content)[buffer.DeserialBlockId]; object deserialCardsObj = ((ISerialFormatter)serialCardsObj).Deserialize(buffer); ISerialFormatter deserialCards = (ISerialFormatter)deserialCardsObj; if (deserialCards.DeserialCount <= deserialCards.ProgressCount || deserialCards.ProgressCount == 0) { transaction.Context.ObjectsLeft--; deserialCards.ProgressCount = 0; } }
/// <summary> /// The HeaderContent. /// </summary> /// <param name="content">The content<see cref="object"/>.</param> /// <param name="value">The value<see cref="object"/>.</param> /// <param name="_direction">The _direction<see cref="DirectionType"/>.</param> public void HeaderContent(object content, object value, DirectionType _direction) { DirectionType direction = _direction; object _content = value; if (_content != null) { Type[] ifaces = _content.GetType().GetInterfaces(); if (ifaces.Contains(typeof(ISerialFormatter))) { transaction.MyHeader.Context.ContentType = _content.GetType(); if (direction == DirectionType.Send) { _content = ((ISerialFormatter)value).GetHeader(); } object[] messages_ = null; if (treatment.Assign(_content, direction, out messages_) // Dealer Treatment assign with handle its only place where its called and mutate data. ) { if (messages_.Length > 0) { context.ObjectsCount = messages_.Length; for (int i = 0; i < context.ObjectsCount; i++) { ISerialFormatter message = ((ISerialFormatter[])messages_)[i]; ISerialFormatter head = (ISerialFormatter)((ISerialFormatter[])messages_)[i].GetHeader(); message.SerialCount = message.ItemsCount; head.SerialCount = message.ItemsCount; } if (direction == DirectionType.Send) { transaction.MyMessage.Content = messages_; } else { transaction.MyMessage.Content = ((ISerialFormatter)_content).GetHeader(); } } } } } content = _content; }