Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        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));
        }