Пример #1
0
        public void ProcessAtServer()
        {
            IServerMessageDispatcher dispatcher = (IServerMessageDispatcher)MessageDispatcher
                                                      ();
            int         count = ReadInt();
            Transaction ta    = Transaction();

            for (int i = 0; i < count; i++)
            {
                StatefulBuffer writer        = _payLoad.ReadStatefulBuffer();
                int            messageId     = writer.ReadInt();
                Msg            message       = Msg.GetMessage(messageId);
                Msg            clonedMessage = message.PublicClone();
                clonedMessage.SetMessageDispatcher(MessageDispatcher());
                clonedMessage.SetTransaction(ta);
                if (clonedMessage is MsgD)
                {
                    MsgD msgd = (MsgD)clonedMessage;
                    msgd.PayLoad(writer);
                    if (msgd.PayLoad() != null)
                    {
                        msgd.PayLoad().IncrementOffset(Const4.IntLength);
                        Transaction t = CheckParentTransaction(ta, msgd.PayLoad());
                        msgd.SetTransaction(t);
                        dispatcher.ProcessMessage(msgd);
                    }
                }
                else
                {
                    dispatcher.ProcessMessage(clonedMessage);
                }
            }
        }
Пример #2
0
 /// <param name="socket"></param>
 internal virtual Db4objects.Db4o.CS.Internal.Messages.Msg ReadPayLoad(IMessageDispatcher
                                                                       messageDispatcher, Db4objects.Db4o.Internal.Transaction a_trans, Socket4Adapter
                                                                       socket, ByteArrayBuffer reader)
 {
     Db4objects.Db4o.CS.Internal.Messages.Msg msg = PublicClone();
     msg.SetMessageDispatcher(messageDispatcher);
     msg.SetTransaction(CheckParentTransaction(a_trans, reader));
     return(msg);
 }