public void ManageRemoteEnergyRequest(RemoteEnergyRequest message)
 {
     if (OnRemoteEnergyRequest != null)
     {
         OnRemoteEnergyRequest(message);
     }
 }
예제 #2
0
        private void ManageRemoteEnergyRequest(RemoteEnergyRequest message)
        {
            RemoteConnection remConn;

            Guid   MessageID  = message.enReqMessage.header.MessageID;
            string remotePeer = message.enReqMessage.header.Sender;

            XMLLogger.WriteRemoteActivity("Received Remote Energy Request from: " + message.enReqMessage.header.Sender + " by Remote Resolver: " + message.header.Sender);
            XMLLogger.WriteRemoteActivity("Message ID: " + message.enReqMessage.header.MessageID);

            remConn = GetConnection(message.IP, message.port, ConnectionType.Incoming);

            if (remConn == null)//If entry doesn't exist
            {
                remConn = new RemoteConnection()
                {
                    type = ConnectionType.Incoming,

                    remoteResolver = new RemoteHost()
                    {
                        name       = message.header.Sender,
                        IP         = message.IP,
                        port       = message.port,
                        netAddress = @"net.tcp://" + message.IP + ":" + message.port + @"/Remote"
                    }
                };

                remConn.requests.Add(MessageID, new RemoteRequest()
                {
                    localePeerName = "",
                    remotePeerName = remotePeer,
                    energy         = 0
                });

                _remoteConnections.Add(remConn);
            }
            else
            {
                remConn.requests.Add(MessageID, new RemoteRequest()
                {
                    localePeerName = "",
                    remotePeerName = remotePeer,
                    energy         = 0
                });
            }


            _broker.EnergyLookUp(message.enReqMessage);
        }