Пример #1
0
        // Gossip
        public List <string> suggestClientsForGossip(MeetingProposal meeting)
        {
            List <string> result   = new List <string>();
            List <string> invitees = meeting.getInvitees();

            if (invitees != null)
            {
                foreach (string client in this.clients)
                {
                    foreach (string invitee in invitees)
                    {
                        if (client.StartsWith(invitee))
                        {
                            result.Add(client);
                        }
                    }
                }
            }
            else
            {
                foreach (string client in this.clients)
                {
                    char[]   delimiter  = { '-' };
                    string[] clientInfo = client.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
                    result.Add(clientInfo[0]);
                }
            }

            return(result);
        }
Пример #2
0
        public int pull(MeetingProposal meeting)
        {
            if (this.gossipedMeetings.Contains(meeting.getTopic()))
            {
                // Console.WriteLine(this.url + " stopped " + command.commandId());
                return(0);
            }

            List <string> invitees = meeting.getInvitees();

            if (invitees != null)
            {
                if (invitees.Contains(this.username))
                {
                    Console.WriteLine("You are invited to the meeting " + meeting.getTopic());
                }
            }
            else
            {
                Console.WriteLine("A meeting " + meeting.getTopic() + " was created");
            }

            this.gossipedMeetings.Add(meeting.getTopic());

            List <string> clients = this.getClientsForGossip();

            this.gossip(meeting, clients);

            return(1);
        }