public void VerifyThatNotifyMessageIsReceivedAndDeviceInformationIsPopulated()
        {
            //arrange
            var fakeSocket = new MockedNotifySocket();
            var fakeSocketFactory = A.Fake<ISocketFactory>();
            var fakeResponsFactory = A.Fake<IResponseFactory>();
            var messageParser = new MessageParser();
            var fakeDeviceInfoCollector = A.Fake<IDeviceInfoCollector>();

            A.CallTo(() => fakeSocketFactory.CreateListeningSocket()).Returns(fakeSocket);
            EndPoint dummyEndPoint = new IPEndPoint(IPAddress.Any, 0);
            DeviceInformation deviceInformation = null;
            A.CallTo(() => fakeDeviceInfoCollector.Collect(A<Message>.Ignored))
                .Returns(new DeviceInformation { Location = "http://1.1.1.1/service.xml" });
            var listener = new DiscoveryListener(fakeSocketFactory, fakeResponsFactory, messageParser, fakeDeviceInfoCollector);
            listener.DeviceDiscovered += (sender, e) =>
            {
                deviceInformation = e;
            };

            //act
            listener.Listen();

            //assert
            Assert.AreEqual("http://1.1.1.1/service.xml", deviceInformation.Location);
        }
Esempio n. 2
0
        /// <summary>
        /// Stop process responses for remote queries issued earlier by calling either GetRemoteAdvertisements or RemoteQuery.
        /// </summary>
        /// <param name="query_id">the query ID returned by previous call to issue remote query</param>
        /// <returns></returns>

        /*public Listener<DiscoveryResponse> CancelRemoteQuery(Int32 query_id)
         * {
         *  IntPtr ret = new IntPtr();
         *  discovery_service_cancel_remote_query(this.self, query_id, ref ret);
         *  return new Listener<DiscoveryResponse>(ret);
         * }*/

        public override void AddDiscoveryListener(DiscoveryListener dlistener)
        {
            Listener <DiscoveryEventImpl> listener = new Listener <DiscoveryEventImpl>(dlistener.DiscoveryEvent, 1, 200);

            uint status = discovery_service_add_discovery_listener(this.self, listener.self);

            if (status != Errors.JXTA_SUCCESS)
            {
                throw new JxtaException(status);
            }

            listener.Start();
            list_listener.Add(listener);
        }
Esempio n. 3
0
        public override bool RemoveDiscoveryListener(DiscoveryListener dlistener)
        {
            for (int i = 0; i < list_listener.Count; i++)
            {
                if (list_listener[i].listener == (Listener <DiscoveryEventImpl> .ListenerFunction)dlistener.DiscoveryEvent)
                {
                    list_listener[i].Stop();
                    list_listener.RemoveAt(i);
                    discovery_service_add_discovery_listener(this.self, list_listener[i].self);
                    return(true);
                }
            }

            return(false);
        }
        public static ExitCode DiscoveryCommand(DiscoveryOptions options)
        {
            int port;

            if (!Int32.TryParse(options.Port, out port))
            {
                throw new ArgumentException(string.Format("Value for argument 'port' must be an integer, actual value '{0}'.", options.Port));
            }

            DiscoveryListener listener = new DiscoveryListener(options.ProofKey, options.ProofKeyOld, port);

            listener.Start();

            return(ExitCode.Success);
        }
        public void VerifyThatSearchRequestWillBeAnsweredCorrectly()
        {
            //arrange
            var fakeSocket = new MockedSearchSocket();
            var fakeSocketFactory = A.Fake<ISocketFactory>();
            var fakeResponsFactory = A.Fake<IResponseFactory>();
            var messageParser = new MessageParser();
            var fakeDeviceInfoCollector = A.Fake<IDeviceInfoCollector>();
            A.CallTo(() => fakeSocketFactory.CreateListeningSocket()).Returns(fakeSocket);
            EndPoint dummyEndPoint = new IPEndPoint(IPAddress.Any, 0);
            Message receivedMessage = null;
            var listener = new DiscoveryListener(fakeSocketFactory, fakeResponsFactory, messageParser, fakeDeviceInfoCollector);
            listener.SearchMessageReceived += (sender, e) =>
            {
                receivedMessage = e;
            };

            //act
            listener.Listen();
            listener.Stop();
            //assert
            Assert.AreEqual("M-SEARCH * HTTP/1.1", receivedMessage.MessageLine);
            Assert.AreEqual("http://1.1.1.1/service.xml", receivedMessage.Headers["LOCATION"]);
        }
Esempio n. 6
0
        public override int GetRemoteAdvertisements(string peerid, int type, string attr, string val, int threshold, DiscoveryListener dlistener)
        {
            if (dlistener == null)
            {
                return(GetRemoteAdvertisements(peerid, type, attr, val, threshold));
            }

            Listener <DiscoveryEventImpl> listener = new Listener <DiscoveryEventImpl>(dlistener.DiscoveryEvent, 1, 200);

            int queryID = discovery_service_get_remote_advertisements(self, peerid, type, attr, val, threshold, listener.self);

            listener.Start();
            list_listener.Add(listener);

            return(queryID);
        }
Esempio n. 7
0
 /// <summary>
 /// Remove a Discovery listener which was previously registered with GetRemoteAdvertisements()
 /// or addDiscoveryListener().
 /// </summary>
 /// <param name="dListener">The listener to be removed.</param>
 /// <returns>true if the listener was successfully removed, false otherwise</returns>
 public abstract bool RemoveDiscoveryListener(DiscoveryListener dListener);
Esempio n. 8
0
 /// <summary>
 /// Register a Discovery listener. The Discovery listener will be called whenever
 /// Advertisement responses are received from remote peers by the Discovery Service.
 /// </summary>
 /// <param name="dListener">The DiscoveryListener</param>
 public abstract void AddDiscoveryListener(DiscoveryListener dListener);
Esempio n. 9
0
        public abstract List <Advertisement> GetLocalAdvertisements(int type, string attr, string value);// where T : Advertisement;

        /// <summary>
        /// Discover advertisements from remote peers. The scope of advertisements returned
        /// can be narrowed by specifying an attribute and value pair. You may also limit the number of responses any single peer may return.
        /// </summary>
        /// <param name="peerid"><he ID of a peer which will receive the query or null in order to propagate the query/param>
        /// <param name="type">Discovery type PEER, GROUP, ADV</param>
        /// <param name="attr">indexed element name (see advertisement(s) for a list of indexed fields.
        /// A null attribute indicates any advertisement of specified type</param>
        /// <param name="val">value of attribute to narrow discovery to valid values for this
        /// parameter are null (don't care), Exact value, or use of wild card(s)
        /// (e.g. if a Advertisement defines FooBar , a value of "*bar", "foo*", or "*ooB*",
        /// will return the Advertisement</param>
        /// <param name="threshold">The upper limit of responses from each peer responding.
        /// threshold of 0, and type of PEER has a special behaviour</param>
        /// <param name="listener">The listener which will be called when advertisement which match this query are
        /// discovered or null if no callback is desired.</param>
        /// <returns>query ID for this discovery query.</returns>
        public abstract int GetRemoteAdvertisements(string peerid, int type, string attr, string val, int threshold, DiscoveryListener listener);
Esempio n. 10
0
 public void setDiscoveryListener(DiscoveryListener listener)
 {
     javaListener = new JavaImplDiscoveryListener(listener);
     javaDsm?.Call("setDiscoveryListener", javaListener);
 }
Esempio n. 11
0
 public JavaImplDiscoveryListener(DiscoveryListener listener) : base(
         "open.android.lib.dsm.Dsm$DiscoveryListener")
 {
     this.listener = listener;
 }