private void VerifyPasswordResult(string correctPassword, string suppliedPassword, bool expectPasswordIsCorrect) { ReadRequestMessage readRequest = new ReadRequestMessage(new DateTime(0), suppliedPassword); using (BookmarkableStream clientStream = ClientRequestToStream(readRequest)) { MockNetworkConnection networkConnection = new MockNetworkConnection(clientStream); MockFolderPackager mockFolderPackager = new MockFolderPackager(); MockClock serverClock = new MockClock(new DateTime(2007, 5, 25, 15, 27, 03)); RequestListener folderMonitor = new RequestListener(networkConnection, mockFolderPackager, serverClock, @"c:\fakepath\fakedir", correctPassword); folderMonitor.ProcessNextRequest(); clientStream.ResetToBookmark(); FarmerMessageSerializer deserializer = new FarmerMessageSerializer(); ReadResponseMessage readResponse = (ReadResponseMessage)deserializer.Deserialize(clientStream); Assert.AreEqual(expectPasswordIsCorrect, readResponse.IsPasswordCorrect); if (expectPasswordIsCorrect) { Assert.AreEqual(serverClock.GetCurrentTimeUtc(), readResponse.CurrentServerTimeUtc); Assert.IsNotNull(readResponse.Data); } else { Assert.IsNull(readResponse.Data); } } }
public Server(string defaultLocation, NetworkInterface networkInterface) { default_location = defaultLocation; network_interface_info = NetworkInterfaceInfo.GetNetworkInterfaceInfo(networkInterface); request_listener = new RequestListener(this); announcers = new Dictionary <string, Announcer> (); }
public LineAssembler(RequestListener networkListener) { // assert (this.owner = Thread.currentThread()) != null; Debug.Assert(networkListener != null); this.networkListener = networkListener; linePart = new PeekableByteArrayOutputStream(); }
public virtual void write(string message, RequestListener listener) { lock (this) { if (closed || released) { log.Debug("Message discarded because the channel [" + ch.Id + "] is closed: " + message); return; } if (listener != null) { /* * NB * I moved the onOpen call outside of operationComplete write callback * because sometimes the write callback of a request was fired after * the read callback of the response. * The effect of calling onOpen after the method onMessage/onClosed of a RequestListener * was the retransmission of the request. * Probably this behavior was caused by the tests running on localhost, but who knows? */ listener.onOpen(); } Task chf = ch.WriteAndFlushAsync(new TextWebSocketFrame(message)); chf.ContinueWith((antecedent, outerInstance) => { if (antecedent.IsFaulted || antecedent.IsCanceled) { ((MyChannel)outerInstance).onBroken(message, antecedent.Exception); } }, ch); } }
private void sendControlRequest(LightstreamerRequest request, RequestListener reqListener, RequestTutor tutor) { ongoingRequest = new PendingRequest(request, reqListener, tutor); wsTransport.sendRequest(protocol, request, new ListenerWrapperAnonymousInnerClass(this, reqListener) , null, null, 0, 0); }
public virtual void send(string message, RequestListener listener) { if (logStream.IsDebugEnabled) { logStream.Debug("WS transport sending [" + channel + "]: " + message); } channel.write(message, listener); }
/// <summary> /// Finds the listener associated with the request. /// If found, removes it from the list of pending requests. /// </summary> public virtual RequestListener getAndRemoveRequestListener(long reqId) { RequestListener reqListener = pendingRequestMap.GetValueOrNull(reqId); pendingRequestMap.Remove(reqId); return(reqListener); }
static void AcceptRequest(RequestListener listener) { while (true) { Console.WriteLine("Waiting"); //this is blocking listener.Accept(); } }
public RxjavaDisposable callHello(RequestListener listener) { if (isAndroid) { AndroidJavaObject helloDisposable = mMainInterfaceObject.Call <AndroidJavaObject>("hello", new AdLocusListenerCallBack(listener)); return(new RxjavaDisposable(helloDisposable)); } return(null); }
/** * Starts (or restart if needed, if for example the configuration * of the server has been modified) the RTSP server. */ public void start() { if (!mEnabled || mRestart) stop(); if (mEnabled && mListenerThread == null) { try { mListenerThread = new RequestListener(); } catch (System.Exception e) { mListenerThread = null; } } mRestart = false; }
public void HandleRequest_NoMatchingSkillRequestHandler_ReturnsRequestContextFallbackResponse() { SkillResponse response = ResponseBuilder.Tell("Test"); RequestListener.SkillRequestHandlerFactory = new DefaultSkillRequestHandlerFactory(); RequestContext.FallbackResponse = response; SkillRequest request = new SkillRequest(); request.Request = new IntentRequest(); AssertExt.IsEmpty(RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers); Assert.AreSame(response, RequestListener.HandleRequest(request, null)); }
/** * Stops the RTSP server but not the Android Service. * To stop the Android Service you need to call {@link android.content.Context#stopService(Intent)}; */ public void stop() { if (mListenerThread != null) { try { mListenerThread.kill(); foreach ( Session session in mSessions.KeySet() ) { if ( session != null && session.isStreaming() ) { session.stop(); } } } catch (System.Exception e) { } finally { mListenerThread = null; } } }
public void HandleRequest_WithMatchingSkillRequestHandler_ReturnsMatchingSkillRequestHandlerResponse() { SkillResponse response = ResponseBuilder.Tell("Test"); MockSkillRequestHandler skillRequestHandler = new MockSkillRequestHandler(); skillRequestHandler.HandleRequest_Result = response; RequestListener.SkillRequestHandlerFactory = new DefaultSkillRequestHandlerFactory(); RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers.Add(skillRequestHandler); SkillRequest request = new SkillRequest(); request.Request = new IntentRequest(); Assert.IsNotNull(RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers.Exists(x => x.IsHandlerForRequest(request))); Assert.AreSame(response, RequestListener.HandleRequest(request, null)); }
private void Form1_Load(object sender, EventArgs e) { tcpL = new TcpListener(5000); tcpL.Start(); tcpClientConnected.Reset(); tcpL.BeginAcceptTcpClient(new AsyncCallback(NewClientEvent), tcpL); RequestListener.RunWorkerAsync(); for (int p = 0; p < 5; p++) { GameRoom gr = new GameRoom("Empty Room", game_rooms.Count); game_rooms.Add(gr); } }
/** * Cancels all running transactions and prepares for garbage collection */ public virtual void ShutDown() { requestListener = null; ArrayList toRemove = new ArrayList(); foreach (object o in clientTransactions.Keys) { toRemove.Add(o); } foreach (TransactionID id in toRemove) { StunClientTransaction sct = (StunClientTransaction)clientTransactions[id]; clientTransactions.Remove(id); if (sct != null) { sct.Cancel(); } } }
public override void processREQERR(string message) { try { REQERRParser parser = new REQERRParser(message); RequestListener reqListener = wsRequestManager.getAndRemoveRequestListener(parser.requestId); if (reqListener == null) { /* discard the response of a request made outside of the current session */ log.Warn("Acknowledgement discarded: " + message); } else { // notify the request listener (NB we are on SessionThread) reqListener.onMessage(message); reqListener.onClosed(); } } catch (ParsingException e) { onIllegalMessage(e.Message); } }
public static async Task <ImageSourceServiceResult?> SubmitAsync(this RequestBuilder requestBuilder, RequestManager requestManager, CancellationToken cancellationToken = default) { var callback = new RequestListener(); try { requestBuilder = requestBuilder.AddListener(callback); var target = requestBuilder.Submit(); var drawable = await callback.Result; if (drawable == null) { return(null); } return(new ImageSourceServiceResult(drawable, () => requestManager.Clear(target))); } finally { GC.KeepAlive(callback); } }
private void VerifyMonitoring(DateTime startTimestampExpected, byte[] folderDataExpected) { MockFolderPackager mockFolderPackager = new MockFolderPackager(); MockClock serverClock = new MockClock(new DateTime(2007, 5, 25, 15, 27, 03)); ReadRequestMessage readRequest = new ReadRequestMessage(startTimestampExpected, CorrectPassword); using (BookmarkableStream clientStream = ClientRequestToStream(readRequest)) { MockNetworkConnection networkConnection = new MockNetworkConnection(clientStream); RequestListener folderMonitor = new RequestListener(networkConnection, mockFolderPackager, serverClock, @"c:\fakepath\fakedir", CorrectPassword); folderMonitor.ProcessNextRequest(); Assert.AreEqual(@"c:\fakepath\fakedir", mockFolderPackager.LastFolderPacked); Assert.AreEqual(startTimestampExpected, mockFolderPackager.LastModifiedMinimumRequested); clientStream.ResetToBookmark(); FarmerMessageSerializer deserializer = new FarmerMessageSerializer(); ReadResponseMessage response = (ReadResponseMessage)deserializer.Deserialize(clientStream); Assert.AreEqual(serverClock.GetCurrentTimeUtc(), response.CurrentServerTimeUtc); Assert.IsTrue(Util.ArraysEqual <byte>(folderDataExpected, response.Data)); } }
private static void Setup(String[] args) { Logger.Log("INFO :: Follower setup process started."); string ip = GetBindedIpAddress(args); Follower follower = null; if (!String.IsNullOrEmpty(ip)) { var ipPartsArr = ip.Split(new Char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); byte[] ipParts = ipPartsArr.Select(s => Convert.ToByte(s, 10)).ToArray(); IPAddress ipAddress = new IPAddress(ipParts); follower = new Follower(ipAddress); } else { follower = new Follower(); } NodeRegistryCache.GetInstance().RegisterCurrentNode(follower); Logger.Log(string.Format("Node added : {0}", follower.ToString())); RequestListener.StartListeningOnPorts(); RegisterCluster(args); follower.StartUp(); follower.StartNetworkBootstrap(); }
public RequestObjects(LightstreamerRequest request, RequestTutor tutor, RequestListener listener) { this.request = request; this.tutor = tutor; this.listener = listener; }
public override EndpointReferenceType CreatePullPointSubscription(FilterType Filter, [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] string InitialTerminationTime, CreatePullPointSubscriptionSubscriptionPolicy SubscriptionPolicy, [System.Xml.Serialization.XmlAnyElementAttribute()] ref System.Xml.XmlElement[] Any, [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://docs.oasis-open.org/wsn/b-2")] out System.DateTime CurrentTime, [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://docs.oasis-open.org/wsn/b-2", IsNullable = true)] out System.Nullable <System.DateTime> TerminationTime) { SoapHeaderProcessing(unknownHeaders); ConfStorageLoad(); EventServerLoad(); EndpointReferenceType res = new EndpointReferenceType(); DateTime terminationTime; bool nullInitialTerminationTime = false; if (InitialTerminationTime == null) { InitialTerminationTime = "PT10S"; nullInitialTerminationTime = true; } try { TimeSpan timeSpan = System.Xml.XmlConvert.ToTimeSpan(InitialTerminationTime); terminationTime = DateTime.UtcNow.Add(timeSpan.Add(new TimeSpan(0, 0, 1))); } catch (Exception) { try { terminationTime = System.Xml.XmlConvert.ToDateTime(InitialTerminationTime, XmlDateTimeSerializationMode.Utc); } catch (Exception) { throw FaultLib.GetSoapException(FaultType.General, "Wrong Initial Termination Time."); } } string rawRequest = RequestListener.Take(); XmlElement filterElement = Utils.GetFilterElements(rawRequest, true); int subscriptionKey = EventServer.AddSubscribtion(null, Filter, filterElement, terminationTime, nullInitialTerminationTime); CurrentTime = DateTime.UtcNow; TerminationTime = terminationTime; res.ReferenceParameters = new ReferenceParametersType(); res.Address = new AttributedURIType(); string hostAndPort = HttpContext.Current.Request.Url.Authority; res.Address.Value = "http://" + hostAndPort + "/ServiceEvents10/PullpointSubscriptionService.asmx"; res.ReferenceParameters.Any = new System.Xml.XmlElement[1]; NameTable nt = new NameTable(); XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); nsmgr.AddNamespace("dut", "http://dut"); nsmgr.AddNamespace("tdc", "http://www.onvif.org/ver10/doorcontrol/wsdl"); XmlDocument referenceParameters = new XmlDocument(nt); res.ReferenceParameters.Any[0] = referenceParameters.CreateElement("dut", "id", "http://dut"); res.ReferenceParameters.Any[0].InnerXml = subscriptionKey.ToString(); EventServerSave(); ConfStorageSave(); actionHeader.actionValue = "http://www.onvif.org/ver10/events/wsdl/EventPortType/CreatePullPointSubscriptionResponse"; EventServer.SynchronizationPoint(subscriptionKey); return(res); }
public override SubscribeResponse Subscribe([System.Xml.Serialization.XmlElementAttribute("Subscribe", Namespace = "http://docs.oasis-open.org/wsn/b-2")] Subscribe Subscribe1) { SoapHeaderProcessing(unknownHeaders); ConfStorageLoad(); EventServerLoad(); SubscribeResponse res = new SubscribeResponse(); DateTime terminationTime; try { TimeSpan timeSpan = System.Xml.XmlConvert.ToTimeSpan(Subscribe1.InitialTerminationTime); terminationTime = DateTime.UtcNow.Add(timeSpan.Add(new TimeSpan(0, 0, 1))); } catch (Exception) { try { terminationTime = System.Xml.XmlConvert.ToDateTime(Subscribe1.InitialTerminationTime, XmlDateTimeSerializationMode.Utc); } catch (Exception) { throw FaultLib.GetSoapException(FaultType.General, "Wrong Initial Termination Time."); } } string rawRequest = RequestListener.Take(); XmlElement filterElement = Utils.GetFilterElements(rawRequest); int subscriptionKey = EventServer.AddSubscribtion(Subscribe1.ConsumerReference.Address.Value, Subscribe1.Filter, filterElement, terminationTime, false); res.CurrentTimeSpecified = true; res.CurrentTime = DateTime.UtcNow; res.TerminationTimeSpecified = true; res.TerminationTime = terminationTime; res.SubscriptionReference = new EndpointReferenceType(); res.SubscriptionReference.Address = new AttributedURIType(); string hostAndPort = HttpContext.Current.Request.Url.Authority; res.SubscriptionReference.Address.Value = "http://" + hostAndPort + "/ServiceEvents10/SubscriptionManagerService.asmx"; res.SubscriptionReference.ReferenceParameters = new ReferenceParametersType(); res.SubscriptionReference.ReferenceParameters.Any = new System.Xml.XmlElement[1]; NameTable nt = new NameTable(); XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); nsmgr.AddNamespace("dut", "http://dut"); nsmgr.AddNamespace("tdc", "http://www.onvif.org/ver10/doorcontrol/wsdl"); XmlDocument referenceParameters = new XmlDocument(nt); res.SubscriptionReference.ReferenceParameters.Any[0] = referenceParameters.CreateElement("dut", "id", "http://dut"); res.SubscriptionReference.ReferenceParameters.Any[0].InnerXml = subscriptionKey.ToString(); EventServerSave(); ConfStorageSave(); actionHeader.actionValue = "http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeResponse"; EventServer.SynchronizationPoint(subscriptionKey); return(res); }
public Server() { request_listener = new RequestListener(this); announcers = new Dictionary <string, Announcer> (); }
public virtual void add(RequestListener listener) { listeners.Add(listener); }
public virtual void addRequest(LightstreamerRequest request, RequestTutor tutor, RequestListener listener) { Debug.Assert(request is ControlRequest || request is MessageRequest || request is ReverseHeartbeatRequest); if (this.@is(END) || this.@is(ENDING)) { log.Error("Unexpected call on dismissed batch manager: " + request.TransportUnawareQueryString); throw new System.InvalidOperationException("Unexpected call on dismissed batch manager"); } this.addToProperBatch(request, tutor, listener); if (this.@is(IDLE)) { this.dequeue(SYNC_DEQUEUE, "add"); } else { //we're already busy, we'll dequeue when we'll be back log.Debug("Request manager busy: the request will be sent later " + request); } }
/** * Cancels all running transactions and prepares for garbage collection */ public virtual void ShutDown() { requestListener = null; ArrayList toRemove = new ArrayList(); foreach (object o in clientTransactions.Keys) { toRemove.Add(o); } foreach (TransactionID id in toRemove) { StunClientTransaction sct = (StunClientTransaction) clientTransactions[id]; clientTransactions.Remove(id); if (sct != null) { sct.Cancel(); } } }
/** * Sets the listener that should be notified when a new Request is received. * @param requestListener the listener interested in incoming requests. */ public virtual void SetRequestListener(RequestListener requestListener) { this.requestListener = requestListener; }
public RequestHandle sendRequest(Protocol protocol, LightstreamerRequest request, RequestListener protocolListener, IDictionary <string, string> extraHeaders, Proxy proxy, long tcpConnectTimeout, long tcpReadTimeout) { if (httpProvider == null) { log.Fatal("There is no default HttpProvider, can't connect"); return(null); } RequestHandle connection; try { HttpProvider_HttpRequestListener httpListener = new MyHttpListener(protocolListener, request, sessionThread); connection = httpProvider.createConnection(protocol, request, httpListener, extraHeaders, proxy, tcpConnectTimeout, tcpReadTimeout); } catch (Exception e) { log.Error("Error - " + e.Message + " - " + e.StackTrace); sessionThread.queue(new Task(() => { protocolListener.onBroken(); })); return(null); } if (connection == null) { // we expect that a closed/broken event will be fired soon return(null); } return(new RequestHandleAnonymousInnerClass(this, connection)); }
protected override void forwardDestroyRequest(DestroyRequest request, RequestTutor tutor, RequestListener reqListener) { // don't send destroy request when transport is http }
private bool addToProperBatch(LightstreamerRequest request, RequestTutor tutor, RequestListener listener) { if (request is MessageRequest) { if (log.IsDebugEnabled) { log.Debug("New Message request: " + request.RequestName + ", " + listener); } return(this.messageQueue.addRequestToBatch((MessageRequest)request, tutor, listener)); } else if (request is ReverseHeartbeatRequest) { return(this.hbQueue.addRequestToBatch((ReverseHeartbeatRequest)request, tutor, listener)); } else if (request is ConstrainRequest) { return(this.controlQueue.addRequestToBatch((ConstrainRequest)request, tutor, listener)); } else if (request is ForceRebindRequest) { return(this.controlQueue.addRequestToBatch((ForceRebindRequest)request, tutor, listener)); } else if (request is UnsubscribeRequest) { return(this.controlQueue.addRequestToBatch((UnsubscribeRequest)request, tutor, listener)); } else if (request is SubscribeRequest) { return(this.controlQueue.addRequestToBatch((SubscribeRequest)request, tutor, listener)); } else if (request is ChangeSubscriptionRequest) { return(this.controlQueue.addRequestToBatch((ChangeSubscriptionRequest)request, tutor, listener)); } else if (request is DestroyRequest) { return(this.destroyQueue.addRequestToBatch((DestroyRequest)request, tutor, listener)); } else { return(false); } }
public void Shutdown() { RequestListener.Shutdown(); }
public MyHttpListener(RequestListener listener, LightstreamerRequest request, SessionThread sessionThread) { this.listener = listener; this.request = request; this.sessionThread = sessionThread; }