Skip to content
  • Josh Kunz's avatar
    Implement support for RP channels · 57f0ea56
    Josh Kunz authored
    This is achieved by adding a new "message" field to the rp_elem struct
    that can be set independent of the rp_elem "source". I also added a
    special source called "MESSAGE" that implies there is no cptr contained
    in an elem, only a message.
    
    I also modified the CPInvokeRPSendArgs in the protocol (and CN_RP_SEND
    stuff in dispatch) to support a cptr, a message or both.
    
    CN_RP_RECV (both in the dispatch and in obj.c) has been modified to
    support returning message, cptr, or both. This uses that new multi-item
    response stuff added previously to get both the message and cptr to the
    client if they are present. One part that temporarily tripped me up was
    correctly generating a cn_dispatch_result_t for waiting recvs. I fixed
    it by exposing the cn_dispatch_result_item generation stuff in
    dispatch.c to obj.c.
    57f0ea56