Creates a single message for one of the end points.
The factory is
Inheritance: IDisposable
コード例 #1
0
        /// <summary>
        /// Create a new message factory context.
        /// </summary>
        /// <param name="ep">End point to parse messgaes from</param>
        /// <returns>A new context.</returns>
        /// <remarks>
        /// A context is used to parse messages from a specific endpoint.
        /// </remarks>
        internal MessageFactoryContext CreateNewContext(EndPoint ep)
        {
            MessageFactoryContext context = _builders.Dequeue();

            context.EndPoint = ep;
            return(context);
        }
コード例 #2
0
ファイル: MessageFactory.cs プロジェクト: jgauffin/SipSharp
 private MessageFactoryContext CreateBuilder()
 {
     var mb = new MessageFactoryContext(this, _factory, new SipParser());
     mb.RequestCompleted += OnRequest;
     mb.ResponseCompleted += OnResponse;
     return mb;
 }
コード例 #3
0
        private MessageFactoryContext CreateBuilder()
        {
            var mb = new MessageFactoryContext(this, _factory, new SipParser());

            mb.RequestCompleted  += OnRequest;
            mb.ResponseCompleted += OnResponse;
            return(mb);
        }
コード例 #4
0
 private void Parse(MessageFactoryContext context, string message, int offset)
 {
     byte[] bytes = Encoding.ASCII.GetBytes(message);
     if (offset == 0)
         context.Parse(bytes, 0, bytes.Length);
     else
     {
         context.Parse(bytes, 0, offset);
         context.Parse(bytes, offset, bytes.Length - offset);
     }
 }
コード例 #5
0
ファイル: MessageFactory.cs プロジェクト: jgauffin/SipSharp
 /// <summary>
 /// Release a used factoryContext.
 /// </summary>
 /// <param name="factoryContext"></param>
 internal void Release(MessageFactoryContext factoryContext)
 {
     _builders.Enqueue(factoryContext);
 }
コード例 #6
0
ファイル: TcpTransport.cs プロジェクト: jgauffin/SipSharp
 public ClientContext(Socket socket, byte[] buffer, MessageFactoryContext parser)
     : this()
 {
     Socket = socket;
     Parser = parser;
     Buffer = buffer;
     Offset = 0;
 }
コード例 #7
0
 /// <summary>
 /// Release a used factoryContext.
 /// </summary>
 /// <param name="factoryContext"></param>
 internal void Release(MessageFactoryContext factoryContext)
 {
     _builders.Enqueue(factoryContext);
 }
コード例 #8
0
 private void Parse(MessageFactoryContext context, string message)
 {
     Parse(context, message, 0);
 }