Example #1
0
        /// <summary>
        /// Actualiza los parámetros del router
        /// </summary>
        /// <param name="netHandler">El manejador de la red</param>
        /// <param name="netUser">Los datos del usuario local</param>
        /// <param name="netUserList">La lista de usuarios de la red</param>
        public void updateRouterTable(NetHandler netHandler, NetUser netUser, NetUserList netUserList)
        {
            this.netHandler  = netHandler;
            this.netUser     = netUser;
            this.netUserList = netUserList;

            int newMessageNumber = nMessagesCounted;

            nMessagesCounted = 0;
            int neighborhoodSize = netUser.NeighborhoodIds.Length;

            //se incrementa el numero de iteraciones
            iterations++;
            //actualizo el promedio de cada registro
            messageAverage = ((messageAverage * (iterations - 1) + newMessageNumber) / iterations);
            if (messageAverage > 1)
            {
                //calculo el nuevo tamaño optimo de la lista,
                int size = 1 + (int)(((Math.Log(duplicationProbability, Math.E) / (Math.Log(messageAverage - 1, Math.E) - Math.Log(messageAverage, Math.E)))));
                //si el nuevo tamaño optimo es mayor, se debe aumentar el tamaño de la lista
                if (size > messageIdCollection.MaxSize)
                {
                    messageIdCollection.MaxSize = size;
                }
            }
        }
        /// <summary>
        /// Inicializa las variables locales
        /// </summary>
        private void init()
        {
            try
            {
                netUserList = new NetUserList();
                router      = new Router(routerMessageErrorHandler, configuration.NetData.WaitForAck, messageTypes);
                stopPoint   = 0;

                timerPoint     = 0;
                timerWaitPoint = 0;

                tcpThread = new Thread(new ThreadStart(processTCPMessages));

                udpThread = new Thread(new ThreadStart(processUDPMessages));

                messageThreads = new Thread(new ThreadStart(processNotSentMessages));

                bagPoint     = 0;
                bagWaitPoint = 0;

                userListLock = new Object();
            }
            catch (ThreadAbortException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Actualiza los parámetros del router
        /// </summary>
        /// <param name="netHandler">El manejador de la red</param>
        /// <param name="netUser">Los datos del usuario local</param>
        /// <param name="netUserList">La lista de usuarios de la red</param>
        public void updateRouterTable(NetHandler netHandler, NetUser netUser, NetUserList netUserList)
        {
            this.netHandler = netHandler;
            this.netUser = netUser;
            this.netUserList = netUserList;

            int newMessageNumber = nMessagesCounted;
            nMessagesCounted = 0;
            int neighborhoodSize = netUser.NeighborhoodIds.Length;
            //se incrementa el numero de iteraciones
            iterations++;
            //actualizo el promedio de cada registro
            messageAverage = ((messageAverage * (iterations - 1) + newMessageNumber) / iterations);
            if (messageAverage > 1)
            {
                //calculo el nuevo tamaño optimo de la lista,
                int size = 1 + (int)(((Math.Log(duplicationProbability, Math.E) / (Math.Log(messageAverage - 1, Math.E) - Math.Log(messageAverage, Math.E)))));
                //si el nuevo tamaño optimo es mayor, se debe aumentar el tamaño de la lista
                if (size > messageIdCollection.MaxSize)
                {
                    messageIdCollection.MaxSize = size;
                }
            }
        }
        /// <summary>
        /// Inicializa las variables locales
        /// </summary>
        private void init()
        {
            try
            {
                netUserList = new NetUserList();
                router = new Router(routerMessageErrorHandler, configuration.NetData.WaitForAck, messageTypes);
                stopPoint = 0;

                timerPoint = 0;
                timerWaitPoint = 0;
                timer = new System.Timers.Timer(configuration.NetData.TimeIntervalTimer);
                timer.Elapsed += new ElapsedEventHandler(communicationTimer);

                bagPoint = 0;
                bagWaitPoint = 0;
                bag = new System.Timers.Timer(configuration.NetData.TimeIntervalTimer);
                bag.Elapsed += new ElapsedEventHandler(communicationBag);

                tcpThread = new Thread(new ThreadStart(processTCPMessages));
                udpThreads = new Thread(new ThreadStart(processUDPMessages));
                messageThreads = new Thread(new ThreadStart(processNotSentMessages));

                userListLock = new Object();
            }
            catch (ThreadAbortException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Inicializa las variables locales
        /// </summary>
        private void init()
        {
            try
            {
                netUserList = new NetUserList();
                router = new Router(routerMessageErrorHandler, configuration.NetData.WaitForAck, messageTypes);
                stopPoint = 0;

                timerPoint = 0;
                timerWaitPoint = 0;

                tcpThread = new Thread(new ThreadStart(processTCPMessages));

                udpThread = new Thread(new ThreadStart(processUDPMessages));

                messageThreads = new Thread(new ThreadStart(processNotSentMessages));

                bagPoint = 0;
                bagWaitPoint = 0;

                userListLock = new Object();

            }
            catch (ThreadAbortException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }