예제 #1
0
static pn_message_t *build_request_message(pn_message_t *message,
                                           const char *command,
                                           const char *to,
                                           const char *reply_to,
                                           const char *new_fortune,
                                           unsigned int ttl)
{
    int rc;

    pn_message_set_address( message, to );
    if (reply_to) {
        LOG("setting reply-to %s\n", reply_to);
        rc = pn_message_set_reply_to( message, reply_to );
        check(rc == 0, "pn_message_set_reply_to() failed");
    }
    pn_message_set_delivery_count( message, 0 );
    if (ttl)
        pn_message_set_ttl( message, ttl * 1000 );


    pn_data_t *body = pn_message_body(message);
    pn_data_clear( body );
    rc = pn_data_fill( body, "{SSSSSS}",
                       "type", "request",
                       "command", command,
                       "value", (new_fortune) ? new_fortune : "" );
    check( rc == 0, "Failure to create request message" );
    return message;
}
예제 #2
0
void amqp::Sender::_addMetaToMessage(pn_message_t *pnmessage, IMessage const &message)
{
	pn_timestamp_t utcTime;
	time(&utcTime);

	_addPropertiesToMessage(pnmessage, message);
	_addAnnotationsToMessage(pnmessage, message);

	pn_message_set_content_type(pnmessage, message.getContentType().c_str());
	pn_message_set_inferred(pnmessage, true);
	pn_message_set_subject(pnmessage, message.getSubject().c_str());
	pn_message_set_ttl(pnmessage, 86400000);
	pn_message_set_creation_time(pnmessage, utcTime);
	switch (message.getEncoding())
	{
	case IMessage::UTF8: 
		pn_message_set_content_encoding(pnmessage, "UTF-8");
		break;
	case IMessage::UTF16:
		pn_message_set_content_encoding(pnmessage, "UTF-16");
		break;
	}
	
}
예제 #3
0
void message::ttl(duration d) { pn_message_set_ttl(pn_msg(), d.milliseconds()); }