/* #line 150 "./ragel/tsip_parser_message.rl" */

    public static TSIP_Message Parse(byte[] content, Boolean extractContent)
    {
        TSK_RagelState state = TSK_RagelState.Init(content);

        byte[]       data    = content;
        TSIP_Message message = null;

        // Ragel init
        TSIP_ParserMessage.Init(ref state);

        // State mechine execution
        message = TSIP_ParserMessage.Execute(ref state, extractContent);

        // Check result
        if (message != null && state.CS <
/* #line 196 "../Parsers/TSIP_ParserMessage.cs" */
            37
/* #line 164 "./ragel/tsip_parser_message.rl" */
            )
        {
            message.Dispose();
            message = null;
        }
        return(message);
    }