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(IFigureFormatter))) { object[] messages_ = ((IFigureFormatter)value).GetMessage(); if (messages_ != null) { int length = messages_.Length; for (int i = 0; i < length; i++) { IFigureFormatter message = ((IFigureFormatter[])messages_)[i]; IFigureFormatter head = (IFigureFormatter)((IFigureFormatter[])messages_)[i].GetHeader(); message.SerialCount = head.SerialCount; message.DeserialCount = head.DeserialCount; } _content = messages_; } } } } content = _content; }
public DealOperation(object dealContent) { site = ServiceSite.Server; direction = DirectionType.None; state = ((ISerialNumber)dealContent).FlagsBlock; content = (IFigureFormatter)dealContent; }
private void SrvRecMsg(ref object array, int readposition) { object serialCardsObj = ((object[])transaction.MessageReceived.Content)[readposition]; object deserialCardsObj = ((IFigureFormatter)serialCardsObj).Deserialize(ref array); IFigureFormatter deserialCards = (IFigureFormatter)deserialCardsObj; if (deserialCards.DeserialCount <= deserialCards.ProgressCount || deserialCards.ProgressCount == 0) { transaction.Context.ObjectsLeft--; deserialCards.ProgressCount = 0; } array = null; }
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(IFigureFormatter))) { transaction.MyHeader.Context.ContentType = _content.GetType(); if (direction == DirectionType.Send) { _content = ((IFigureFormatter)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++) { IFigureFormatter message = ((IFigureFormatter[])messages_)[i]; IFigureFormatter head = (IFigureFormatter)((IFigureFormatter[])messages_)[i].GetHeader(); message.SerialCount = message.ItemsCount; head.SerialCount = message.ItemsCount; } if (direction == DirectionType.Send) { transaction.MyMessage.Content = messages_; } else { transaction.MyMessage.Content = ((IFigureFormatter)_content).GetHeader(); } } } } } content = _content; }
private void CltRecMsg(ref object array, int readposition) { object serialCardsObj = ((object[])transaction.MessageReceived.Content)[readposition]; IFigureFormatter serialCards = (IFigureFormatter)serialCardsObj; //if (serialCards.ProgressCount == 0) // ((ISettings)serialCardsObj).State.withPropagate = false; object deserialCardsObj = serialCards.Deserialize(ref array); IFigureFormatter deserialCards = (IFigureFormatter)deserialCardsObj; if (deserialCards.DeserialCount <= deserialCards.ProgressCount || deserialCards.ProgressCount == 0) { transaction.Context.ObjectsLeft--; deserialCards.ProgressCount = 0; //((ISettings)deserialCardsObj).State.withPropagate = true; //((ISettings)((IDeck<)deserialCardsObj).Deck64).State.Emulate(((ISettings)deserialCardsObj).State, true, true); //((ISettings)((ICards)deserialCardsObj).Deck64).State.Synced = true; } array = null; }