/// <summary> /// Generate response action filter /// </summary> /// <param name="action">indicating the action string</param> /// <returns>response action filter</returns> protected static ResponseActionFilter GenerateResponseActionFilter(string action) { ResponseActionFilter filter = null; if (!String.IsNullOrEmpty(action)) { filter = new ResponseActionFilter(action); } return(filter); }
/// <summary> /// Get more responses /// </summary> /// <param name="position">indicating the position</param> /// <param name="count">indicating the count</param> /// <param name="callbackInstance">indicating the callback instance</param> public void GetResponses(GetResponsePosition position, int count, IResponseServiceCallback callbackInstance) { if (position == GetResponsePosition.Begin) { this.ResponsesCount = 0; if (this.IsSessionFailed()) { IResponseServiceCallback callback = callbackInstance; this.ReplyFaultMessage(callback, FrontEndFaultMessage.GenerateFaultMessage(null, this.Version, SOAFaultCode.Broker_SessionFailure, SR.SessionFailure), this.clientData); this.ReplyEndOfMessage(callback, this.clientData); return; } if (this.cacheBrokerQueueItem) { // ACK the items as they were failed to send back to client lock (this.lockCacheItemList) { this.Queue.AckResponses(this.cachedItemList, false); this.cachedItemList = new List <BrokerQueueItem>(); } } this.Queue.ResetResponsesCallback(); } else { if (this.cacheBrokerQueueItem) { // ACK the items as they were succeeded to send back to client lock (this.lockCacheItemList) { this.Queue.AckResponses(this.cachedItemList, true); this.cachedItemList = new List <BrokerQueueItem>(); } } } ResponseActionFilter filter = GenerateResponseActionFilter(this.Action); this.lastResponseServiceCallback = callbackInstance; if (!this.Queue.RegisterResponsesCallback(this.ReceiveResponse, this.Version, filter, count, new object[] { this.lastResponseServiceCallback, this.clientData })) { this.ReplyEndOfMessage(this.lastResponseServiceCallback, this.clientData); } }
public override bool RegisterResponsesCallback(BrokerQueueCallback responseCallback, MessageVersion messageVersion, ResponseActionFilter filter, int responseCount, object state) { throw new NotImplementedException(); }