/// <summary> /// Retrieves and removes the first tuple from the space, matching the specified pattern. The operation is non-blocking. The operation will return null if no elements match. /// </summary> public ITuple GetP(params object[] pattern) { GetPRequest request = new GetPRequest(this.GetSource(), this.GetSessionId(), this.connectionString.Target, pattern); GetPResponse response = this.GetMode()?.PerformRequest <GetPResponse>(request); return(response.Result == null ? null : this.tupleFactory.Create(response.Result)); }
private IMessage PerformGetP(IMessage request) { ISpace ts = this.repository.GetSpace(request.Target); if (ts != null) { GetPRequest getReq = (GetPRequest)request; ITuple tuple = ts.GetP(new Pattern(getReq.Template)); return(new GetPResponse(request.Source, request.Session, request.Target, tuple?.Fields ?? null, StatusCode.OK, StatusMessage.OK)); } return(new GetPResponse(request.Source, request.Session, request.Target, null, StatusCode.NOT_FOUND, StatusMessage.NOT_FOUND)); }