----- Original Message -----
> I like this. 


Good!  I'm trying to get at the intention, as I understood it from 
online discussions, and make a doc that makes the intention easy 
to see.



> I don't think this is the same thing as high level
> conceptual
> intro, but may well be more useful right now, and it will always be
> very
> useful as recipe book style documentation.




No, this isn't the intro -- I'm re-working that now.
I guess I should have said what category of docs this is part of.
Except I don't actually know.
I guess I have an idea of a set of docs at this level that discuss 
different topics.  i.e. addressing, message management, etc.



> 
> I think this is actually quite helpful for the ongoing API
> discussions. One
> of the tricky things about developing a simple API is that everyone
> has
> their own scenario that they want to be simple, and sometimes making
> one
> scenario simpler ends up making another one more difficult, so it's
> actually really useful to have them all laid out so concisely so that
> we
> can observe the overall effect of any changes. I'm thinking we should
> expand this with the API changes I proposed in the other thread and
> see how
> they work out.





Sure -- like a doc for your recent proposals for changes.  
That would be fun, and useful I agree.
But -- probably shouldn't check that into tree, right?
Since it's for hypothetical code.
Just post to list ?






> 
> --Rafael
> 
> On Wed, Mar 6, 2013 at 9:43 AM, Michael Goulish <mgoul...@redhat.com>
> wrote:
> 
> >
> > OK, I'm trying here to express the spirit of Messenger I/O ,
> > greatly based on the conversation of the last 24 hrs.
> >
> > This probably needs some elaboration yet, but I want to
> > see if I'm at least generally on the right track.
> >
> > Oh, please, give me feedback.
> >
> >
> >
> >
> >   Sending and Receiving Messages
> >   =======================================================
> >
> >   The Proton Messenger API provides a mixture of synchronous
> >   and asynchronous operations to give you flexibility in
> >   deciding when you application should block waiting for I/O,
> >   and when it should not.
> >
> >
> >   When sending messages, you can:
> >
> >     * send a message immediately,
> >     * enqueue a message to be sent later,
> >     * block until all enqueued messages are sent,
> >     * send enqueued messages until a timeout occurs, or
> >     * send all messages that can be sent without blocking.
> >
> >   When receiving messages, you can:
> >
> >     * receive messages that can be received without blocking,
> >     * block until at least one message is received,
> >     * receive no more than a fixed number of messages.
> >
> >
> >   Examples
> >   ------------------------------
> >
> >   1. send a message immediately
> >
> >        put  ( messenger, msg );
> >        send ( messenger );
> >
> >
> >
> >   2. enqueue a message to be sent later
> >
> >         put ( messenger, msg );
> >
> >      note:
> >      The message will be sent whenever it is not blocked and
> >      the Messenger code has other I/O work to be done.
> >
> >
> >
> >   3. block until all enqueued messages are sent
> >
> >        set_timeout ( messenger, -1 );
> >        send ( messenger );
> >
> >      note:
> >      A negative timeout means 'forever'.  That is the initial
> >      default for a messenger.
> >
> >
> >
> >   4. send enqueued messages until a timeout occurs
> >
> >        set_timeout ( messenger, 100 ); /* 100 msec */
> >        send ( messenger );
> >
> >
> >
> >   5. send all messages that can be sent without blocking
> >
> >        set_timeout ( messenger, 0 );
> >        send ( messenger );
> >
> >
> >
> >   6. receive messages that can be received without blocking
> >
> >        set_timeout ( messenger, 0 );
> >        recv ( messenger, -1 );
> >
> >
> >
> >   7. block until at least one message is received
> >
> >        set_timeout ( messenger, -1 );
> >        recv ( messenger, -1 );
> >
> >      note: -1 is initial messenger default.
> >            If you didn't change it, you don't need to set it.
> >
> >
> >
> >   8. receive no more than a fixed number of messages
> >
> >        recv ( messenger, 10 );
> >
> >
> >
> >
> 

Reply via email to