Added publish method with r-value std::string

This commit is contained in:
Martijn Otto 2015-04-22 14:24:00 +02:00
parent df6b8ae743
commit 803ba6cc88
2 changed files with 14 additions and 7 deletions

View File

@ -338,6 +338,7 @@ public:
*/ */
bool publish(const std::string &exchange, const std::string &routingKey, const Envelope &envelope) { return _implementation->publish(exchange, routingKey, envelope); } bool publish(const std::string &exchange, const std::string &routingKey, const Envelope &envelope) { return _implementation->publish(exchange, routingKey, envelope); }
bool publish(const std::string &exchange, const std::string &routingKey, const std::string &message) { return _implementation->publish(exchange, routingKey, Envelope(message)); } bool publish(const std::string &exchange, const std::string &routingKey, const std::string &message) { return _implementation->publish(exchange, routingKey, Envelope(message)); }
bool publish(const std::string &exchange, const std::string &routingKey, std::string &&message) { return _implementation->publish(exchange, routingKey, Envelope(std::move(message))); }
bool publish(const std::string &exchange, const std::string &routingKey, const char *message, size_t size) { return _implementation->publish(exchange, routingKey, Envelope(message, size)); } bool publish(const std::string &exchange, const std::string &routingKey, const char *message, size_t size) { return _implementation->publish(exchange, routingKey, Envelope(message, size)); }
bool publish(const std::string &exchange, const std::string &routingKey, const char *message) { return _implementation->publish(exchange, routingKey, Envelope(message, strlen(message))); } bool publish(const std::string &exchange, const std::string &routingKey, const char *message) { return _implementation->publish(exchange, routingKey, Envelope(message, strlen(message))); }

View File

@ -31,7 +31,7 @@ protected:
* @var const char * * @var const char *
*/ */
const char *_body; const char *_body;
/** /**
* Size of the data * Size of the data
* @var uint64_t * @var uint64_t
@ -41,26 +41,32 @@ protected:
public: public:
/** /**
* Constructor * Constructor
* *
* The data buffer that you pass to this constructor must be valid during * The data buffer that you pass to this constructor must be valid during
* the lifetime of the Envelope object. * the lifetime of the Envelope object.
* *
* @param body * @param body
* @param size * @param size
*/ */
Envelope(const char *body, uint64_t size) : MetaData(), _body(body), _bodySize(size) {} Envelope(const char *body, uint64_t size) : MetaData(), _body(body), _bodySize(size) {}
/** /**
* Constructor based on a string * Constructor based on a string
* @param body * @param body
*/ */
Envelope(const std::string &body) : MetaData(), _str(body), _body(_str.data()), _bodySize(_str.size()) {} Envelope(const std::string &body) : MetaData(), _str(body), _body(_str.data()), _bodySize(_str.size()) {}
/**
* Constructor based on a string
* @param body
*/
Envelope(std::string &&body) : MetaData(), _str(std::move(body)), _body(_str.data()), _bodySize(_str.size()) {}
/** /**
* Destructor * Destructor
*/ */
virtual ~Envelope() {} virtual ~Envelope() {}
/** /**
* Access to the full message data * Access to the full message data
* @return buffer * @return buffer
@ -69,7 +75,7 @@ public:
{ {
return _body; return _body;
} }
/** /**
* Size of the body * Size of the body
* @return uint64_t * @return uint64_t
@ -78,7 +84,7 @@ public:
{ {
return _bodySize; return _bodySize;
} }
/** /**
* Body as a string * Body as a string
* @return string * @return string