[ 
https://issues.apache.org/jira/browse/DISPATCH-767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078260#comment-16078260
 ] 

ASF GitHub Bot commented on DISPATCH-767:
-----------------------------------------

Github user alanconway commented on a diff in the pull request:

    https://github.com/apache/qpid-dispatch/pull/172#discussion_r126160704
  
    --- Diff: src/message.c ---
    @@ -975,11 +990,94 @@ void qd_message_set_ingress_annotation(qd_message_t 
*in_msg, qd_composed_field_t
         qd_compose_free(ingress_field);
     }
     
    +bool qd_message_is_discard(qd_message_t *msg)
    +{
    +    if (!msg)
    +        return false;
    +    qd_message_pvt_t *pvt_msg = (qd_message_pvt_t*) msg;
    +    return pvt_msg->content->discard;
    +}
    +
    +void qd_message_set_discard(qd_message_t *msg, bool discard)
    +{
    +    if (!msg)
    +        return;
    +
    +    qd_message_pvt_t *pvt_msg = (qd_message_pvt_t*) msg;
    +    pvt_msg->content->discard = discard;
    +}
    +
    +size_t qd_message_fanout(qd_message_t *in_msg)
    +{
    +    if (!in_msg)
    +        return 0;
    +    qd_message_pvt_t *msg = (qd_message_pvt_t*) in_msg;
    +    return msg->content->fanout;
    +}
    +
    +void qd_message_add_fanout(qd_message_t *in_msg)
    +{
    +    assert(in_msg);
    +    qd_message_pvt_t *msg = (qd_message_pvt_t*) in_msg;
    +    msg->content->fanout++;
    +}
    +
    +bool qd_message_receive_complete(qd_message_t *in_msg)
    +{
    +    if (!in_msg)
    +        return false;
    +    qd_message_pvt_t     *msg     = (qd_message_pvt_t*) in_msg;
    +    return msg->content->receive_complete;
    +}
    +
    +bool qd_message_send_complete(qd_message_t *in_msg)
    +{
    +    if (!in_msg)
    +        return false;
    +
    +    qd_message_pvt_t     *msg     = (qd_message_pvt_t*) in_msg;
    +    return msg->send_complete;
    +}
    +
    +bool qd_message_tag_sent(qd_message_t *in_msg)
    +{
    +    if (!in_msg)
    +        return false;
    +
    +    qd_message_pvt_t     *msg     = (qd_message_pvt_t*) in_msg;
    +    return msg->tag_sent;
    +}
    +
    +void qd_message_set_tag_sent(qd_message_t *in_msg, bool tag_sent)
    +{
    +    if (!in_msg)
    +        return;
    +
    +    qd_message_pvt_t     *msg     = (qd_message_pvt_t*) in_msg;
    +    msg->tag_sent = tag_sent;
    +}
    +
    +qd_buffer_t *qd_message_cursor_buffer(qd_message_pvt_t *in_msg)
    +{
    +    return in_msg->cursor.buffer;
    +}
    +
    +int qd_message_cursor_offset(qd_message_pvt_t *in_msg)
    +{
    +    return in_msg->cursor.offset;
    +}
    +
    --- End diff --
    
    Delete qd_message_cursor_buffer|offset - you don't need them with 
qd_message_cursor()


> Message Cut-Through/Streaming for efficient handling of large messages
> ----------------------------------------------------------------------
>
>                 Key: DISPATCH-767
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-767
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Router Node
>            Reporter: Ted Ross
>            Assignee: Ganesh Murthy
>             Fix For: 1.0.0
>
>
> When large, multi-frame messages are sent through the router, there is no 
> need to wait for the entire message to arrive before starting to send it 
> onward.
> This feature causes the router to route the first frame and allow subsequent 
> frames in a delivery to be streamed out in pipeline fashion.  Ideally, the 
> memory usage in the router should only involve pending frames.  This would 
> allow the router to handle arbitrary numbers of concurrent arbitrarily large 
> messages.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to