You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Frank Quinn (JIRA)" <ji...@apache.org> on 2013/05/24 20:34:20 UTC

[jira] [Created] (PROTON-317) Feature Enhancement - API Exposure of underlying references to internal atoms

Frank Quinn created PROTON-317:
----------------------------------

             Summary: Feature Enhancement - API Exposure of underlying references to internal atoms
                 Key: PROTON-317
                 URL: https://issues.apache.org/jira/browse/PROTON-317
             Project: Qpid Proton
          Issue Type: Improvement
          Components: proton-c
    Affects Versions: 0.3
         Environment: Linux / C implementation
            Reporter: Frank Quinn


We're currently creating a pn_message_t and iterating over it using the pn_data_t data type and the various convenience methods surrounding it. This is great for iteration but we were also hoping to have a way to *mark* a point in the payload for future realignment. I looked at get_message_id() but that always seems to return NULL.
 
Let's take a pseudo example:
 
pn_data_rewind (pn_data);
while (pn_data_next (pn_data))
{
    pn_atom_t atom = pn_data_get_atom (pn_data);
    if(this_atom_might_be_useful)
    {
        // Mark this for potential modification later
    }
}
 
if (changes_are_required_based_on_a_combination_of_circumstances)
{
    // Jump to earlier marker(s)
 
    // put in relevant update(s)
}
 
Is there anything we could use for this sort of use case? I want to avoid having to iterate *again* to find values, and I also want to be able to write functions which don't move (or move, then reset) the internal buffer pointers in proton. If there was something like a get_position() or set_position(), that would be perfect.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira