Exemplo n.º 1
0
 internal void Init(Node node, Socket socket, IPAddress address, int port, string nickname)
 {
     this.node                 = node;
     msgFactory                = node.MessageFactory;
     Nickname                  = nickname;
     this.endpoint             = new IPEndPoint(address, port);
     outboundQueue             = new OutboundQueue(node, this.endpoint, socket);
     ackMessage                = msgFactory.Get <AckMessage>();
     previousActivityTimeTicks = Environment.TickCount;
 }
Exemplo n.º 2
0
 private void Assign(NetworkMessage msg, OutboundMessage target)
 {
     target.ContainedMessageType = msg.GetType();
     if (msg.IsGuaranteed)
     {
         target.SequenceNumber = nextSequence++;
         outboundMessagesBySequence[target.SequenceNumber] = target;
         msg.SequenceNumber = target.SequenceNumber;
     }
     target.PayloadLength     = msg.Write(target.Payload);
     target.NeedsAck          = msg.IsGuaranteed;
     target.PreviousSendTicks = Environment.TickCount - resendGuaranteedPeriodTicks - 1;
     if (!(msg is ResetNetworkIdsMessage) && nextSequence == maxGuaranteedBeforeReset)
     {
         if (IsVerbose)
         {
             NeutrinoConfig.Log(node.Name + " reached max sequence - resetting...");
         }
         Enqueue(msgFactory.Get <ResetNetworkIdsMessage>());
         isResetPending = true;
     }
 }
Exemplo n.º 3
0
 public T GetMessage <T>() where T : NetworkMessage
 {
     return(msgFactory.Get <T>());
 }