Exemple #1
0
zmsg_t * 
zgossip_msg_encode_invalid (
)
{
    zgossip_msg_t *self = zgossip_msg_new (ZGOSSIP_MSG_INVALID);
    return zgossip_msg_encode (&self);
}
Exemple #2
0
zmsg_t * 
zgossip_msg_encode_pong (
)
{
    zgossip_msg_t *self = zgossip_msg_new (ZGOSSIP_MSG_PONG);
    return zgossip_msg_encode (&self);
}
Exemple #3
0
zmsg_t * 
zgossip_msg_encode_hello (
)
{
    zgossip_msg_t *self = zgossip_msg_new (ZGOSSIP_MSG_HELLO);
    return zgossip_msg_encode (&self);
}
Exemple #4
0
int
zgossip_msg_send (zgossip_msg_t **self_p, void *output)
{
    assert (self_p);
    assert (*self_p);
    assert (output);

    //  Save routing_id if any, as encode will destroy it
    zgossip_msg_t *self = *self_p;
    zframe_t *routing_id = self->routing_id;
    self->routing_id = NULL;

    //  Encode zgossip_msg message to a single zmsg
    zmsg_t *msg = zgossip_msg_encode (&self);
    
    //  If we're sending to a ROUTER, send the routing_id first
    if (zsocket_type (zsock_resolve (output)) == ZMQ_ROUTER) {
        assert (routing_id);
        zmsg_prepend (msg, &routing_id);
    }
    else
        zframe_destroy (&routing_id);
        
    if (msg && zmsg_send (&msg, output) == 0)
        return 0;
    else
        return -1;              //  Failed to encode, or send
}
Exemple #5
0
zmsg_t * 
zgossip_msg_encode_publish (
    const char *key,
    const char *value)
{
    zgossip_msg_t *self = zgossip_msg_new (ZGOSSIP_MSG_PUBLISH);
    zgossip_msg_set_key (self, key);
    zgossip_msg_set_value (self, value);
    return zgossip_msg_encode (&self);
}
Exemple #6
0
zmsg_t * 
zgossip_msg_encode_announce (
    const char *endpoint,
    const char *service)
{
    zgossip_msg_t *self = zgossip_msg_new (ZGOSSIP_MSG_ANNOUNCE);
    zgossip_msg_set_endpoint (self, endpoint);
    zgossip_msg_set_service (self, service);
    return zgossip_msg_encode (&self);
}