Beispiel #1
0
        public void Subscribe(Subscriber.Subscriber subscriber)
        {
            if (subscribers.Any(x => x.Id == subscriber.Id))
            {
                Console.WriteLine("this person has been subscribed before");
                return;
            }
            SubscriberInfo subscriberInfo = AdapterTarget.Convert(subscriber.personalInformation, subscriber.Id);

            subscribers.Add(subscriberInfo);

            Console.WriteLine(subscriberInfo.ToString());
        }
Beispiel #2
0
 public void addSubscriber(Subscriber.Subscriber s)
 {
     _subscribers.Add(s);
 }
Beispiel #3
0
        public void createProcess(String processName, String type, String Site, String Url)
        {
            element targetSite = this.findElement(networkTree, Site);

            Broker.Broker         b;
            Publisher.Publisher   p;
            Subscriber.Subscriber s;

            string brokerUrl = "";

            if (targetSite == null)
            {
                Console.WriteLine("No target site found...");
            }
            else
            {
                switch (type)
                {
                case "broker":
                    if (_routingPolicy)
                    {
                        b = new Broker.Broker(processName, Url, Site, "filter", _ordering, this._masterURL, _loggingLevel, _faultTolerant);
                    }
                    else
                    {
                        b = new Broker.Broker(processName, Url, Site, "flooding", _ordering, this._masterURL, _loggingLevel, _faultTolerant);
                    }
                    if (targetSite.getParent() != null)
                    {
                        foreach (string url in targetSite.getParent().getBrokerUrls())
                        {
                            b.addParentUrl(url);
                        }
                        foreach (Broker.Broker parentBroker in targetSite.getParent().getBrokers())
                        {
                            parentBroker.addChildUrl(Url);
                        }
                    }
                    if (_faultTolerant && targetSite.getBrokers() != null)
                    {
                        foreach (string url in targetSite.getBrokerUrls())
                        {
                            b.addBackupUrl(url);
                        }
                        foreach (Broker.Broker backupBroker in targetSite.getBrokers())
                        {
                            backupBroker.addBackupUrl(Url);
                        }
                    }

                    Console.WriteLine(b.getProcessName());
                    _brokers.Add(b);
                    targetSite.addBroker(b);
                    //writeToLog("Broker " + processName + " created on " + Site + " with process URL " + Url);
                    break;

                case "publisher":
                    p = new Publisher.Publisher(processName, Url, Site, this._masterURL);
                    foreach (Broker.Broker sb in targetSite.getBrokers())
                    {
                        p.addBrokerURL(sb.getProcessURL());
                    }
                    _publishers.Add(p);
                    targetSite.addPublisher(p);
                    //writeToLog("Publisher " + processName + " created on " + Site + " with process URL " + Url);
                    break;

                case "subscriber":
                    brokerUrl = targetSite.getBrokerUrls().ElementAt(0);
                    s         = new Subscriber.Subscriber(processName, Url, Site, this._masterURL, _ordering);
                    foreach (Broker.Broker pb in targetSite.getBrokers())
                    {
                        s.addBrokerURL(pb.getProcessURL());
                    }
                    _subscribers.Add(s);
                    targetSite.addSubscriber(s);
                    foreach (Broker.Broker broker in targetSite.getBrokers())
                    {
                        broker.addSubscriberUrl(Url);
                    }
                    //writeToLog("Subscriber " + processName + " created on " + Site + " with process URL " + Url);
                    break;
                }
            }
        }
Beispiel #4
0
        public void connectToNode(string type, string name)
        {
            Node target = null;
            bool fail   = false;

            foreach (Broker.Broker br in _brokers)
            {
                if (br.getProcessName() == name)
                {
                    target = br;
                }
            }
            foreach (Subscriber.Subscriber sr in _subscribers)
            {
                if (sr.getProcessName() == name)
                {
                    target = sr;
                }
            }
            foreach (Publisher.Publisher pr in _publishers)
            {
                if (pr.getProcessName() == name)
                {
                    target = pr;
                }
            }

            switch (type)
            {
            case "broker":
                _remoteBroker = (Broker.Broker)Activator.GetObject(typeof(Broker.Broker), target.getProcessURL());
                if (_remoteBroker == null)
                {
                    fail = true;
                }
                break;

            case "subscriber":
                _remoteSub = (Subscriber.Subscriber)Activator.GetObject(typeof(Subscriber.Subscriber), target.getProcessURL());
                if (_remoteSub == null)
                {
                    fail = true;
                }
                break;

            case "publisher":
                _remotePub = (Publisher.Publisher)Activator.GetObject(typeof(Publisher.Publisher), target.getProcessURL());
                if (_remotePub == null)
                {
                    fail = true;
                }
                break;
            }

            if (fail)
            {
                Console.WriteLine("Could not extablish Proxy to " + target.getProcessURL());
            }
            else
            {
                Console.WriteLine("Established Proxy to: " + target.getProcessURL());
            }
        }
Beispiel #5
0
        public void Unsubscribe(Subscriber.Subscriber subscriber)
        {
            var subInfo = subscribers.Find(s => s.Id == subscriber.Id);

            subscribers.Remove(subInfo);
        }