using System; using System.Collections.Generic; using System.Text; using Taobao.Top.Link.Channel; namespace Taobao.Top.Link.Endpoints { /// context for receiving message /// public class EndpointContext : EventArgs { private int _flag; private string _token; private EndpointHandler _handler; private ChannelContext _channelContext; /// get received message /// public IDictionary Message { get; internal set; } /// get where the message sent from /// public Identity MessageFrom { get; internal set; } public EndpointContext(ChannelContext channelContext , EndpointHandler handler , Identity messageFrom , int flag , string token) { this._channelContext = channelContext; this._handler = handler; this.MessageFrom = messageFrom; this._flag = flag; this._token = token; } /// reply message /// /// public void Reply(IDictionary message) { this._handler.Send(this.CreateMessage(message), this._channelContext.Sender); } /// tell error occur /// /// /// public void Error(int statusCode, string statusPhase) { Message msg = this.CreateMessage(null); msg.StatusCode = statusCode; msg.StatusPhase = statusPhase; this._handler.Send(msg, this._channelContext.Sender); } private Message CreateMessage(IDictionary message) { Message msg = new Message(); msg.MessageType = MessageType.SENDACK; msg.Content = message; msg.Flag = this._flag; msg.Token = this._token; return msg; } } }