Esempio n. 1
0
        public static void ThreadRunner(Dictionary <TypeOfDialog, Dictionary <int, Se_AuthDialog> > p_auth_dialogs
                                        , ref Dictionary <TypeOfDialog, Dictionary <int, Se_UnAuthDialog> > p_unauth_dialogs, Dictionary <int, PrivateChat> p_all_private_chats
                                        , Dictionary <int, PublicChat> p_all_public_chats, ref Dictionary <int, AddAgreement> p_all_add_agreements, Dictionary <int, UserData> p_all_users_logged_in,
                                        List <int> p_all_threads, SendToDistributerConstruct p_send_to_distributer_construct, ReceiveFromServerWorkerConstruct p_receive_from_worker_construct
                                        , object p_distributer_pulse_object, object p_server_thread_pulse_object)
        {
            Server server = new Server(p_auth_dialogs, ref p_unauth_dialogs, p_all_private_chats, p_all_public_chats, ref p_all_add_agreements, p_all_users_logged_in
                                       , p_all_threads, p_send_to_distributer_construct, p_distributer_pulse_object);

            while (true)
            {
                lock (p_server_thread_pulse_object)
                {
                    if (!p_receive_from_worker_construct.server_receive_queue_flag)
                    {
                        Monitor.Wait(p_server_thread_pulse_object);
                    }

                    if (p_receive_from_worker_construct.server_receive_quque.Count > 0)
                    {
                        MessageFromServerWorkerQueueObject message_for_server = p_receive_from_worker_construct.server_receive_quque.Dequeue();
                        if (p_receive_from_worker_construct.server_receive_quque.Count == 0)
                        {
                            p_receive_from_worker_construct.server_receive_queue_flag = false;
                        }
                        server.Receive(message_for_server);
                    }
                    else
                    {
                        p_receive_from_worker_construct.server_receive_queue_flag = false;
                    }
                }
            }
        }
Esempio n. 2
0
 public void Receive(MessageFromServerWorkerQueueObject p_global_message_to_server_from_queue)
 {
     authenicate_and_distribute.Receive(p_global_message_to_server_from_queue);
 }