/// <summary> /// Retrieves 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 QueryP(params object[] pattern) { QueryPRequest request = new QueryPRequest(this.GetSource(), this.GetSessionId(), this.connectionString.Target, pattern); QueryPResponse response = this.GetMode()?.PerformRequest <QueryPResponse>(request); return(response.Result == null ? null : this.tupleFactory.Create(response.Result)); }
private IMessage PerformQueryP(IMessage request) { ISpace ts = this.repository.GetSpace(request.Target); if (ts != null) { QueryPRequest getReq = (QueryPRequest)request; ITuple tuple = ts.QueryP(new Pattern(getReq.Template)); return(new QueryPResponse(request.Source, request.Session, request.Target, tuple?.Fields ?? null, StatusCode.OK, StatusMessage.OK)); } return(new QueryPResponse(request.Source, request.Session, request.Target, null, StatusCode.NOT_FOUND, StatusMessage.NOT_FOUND)); }