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); }
/// <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); }
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"]); }
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); }
/// <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);
/// <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);
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);
public void setDiscoveryListener(DiscoveryListener listener) { javaListener = new JavaImplDiscoveryListener(listener); javaDsm?.Call("setDiscoveryListener", javaListener); }
public JavaImplDiscoveryListener(DiscoveryListener listener) : base( "open.android.lib.dsm.Dsm$DiscoveryListener") { this.listener = listener; }