コード例 #1
0
ファイル: openamq_transport.hpp プロジェクト: PVanV/zeromq1
        inline virtual size_t receive ()
        {
            //  Get next message; if none is available wait for it.
            amq_content_basic_t *content =
                amq_client_session_basic_arrived (session);

            if (!content) {

                //  Wait while next message arrives.
                amq_client_session_wait (session, 0);

                //  Exit the loop if Ctrl+C is encountered.
//  FIXME
//                if (!connection->alive)
//                    assert (false);

                //  Get the message.
                content = amq_client_session_basic_arrived (session);
                assert (content);
            }

            //  Retrieve message size.
            size_t size = amq_content_basic_get_body_size (content);

            //  Destroy the message.
            amq_content_basic_unlink (&content);

            return size;
        }
コード例 #2
0
ファイル: rwire.c プロジェクト: lightwave/ropenamq
static VALUE rwire_amq_client_session_wait(VALUE self, VALUE timeout)
{
    int result;
    amq_client_session_t *session = NULL;
    Data_Get_Struct(self, amq_client_session_t, session);
    if ( FIXNUM_P(timeout))
    {
      result = amq_client_session_wait(session, FIX2INT(timeout));
      return (INT2FIX(result));
    }
    else
    {
      rb_raise(rb_eTypeError, "Timeout was not an Fixnum");
    }
}