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; }
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; } }
void message::ttl(duration d) { pn_message_set_ttl(pn_msg(), d.milliseconds()); }