summaryrefslogtreecommitdiff
path: root/cpp/lib/client/ClientMessage.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/client/ClientMessage.h')
-rw-r--r--cpp/lib/client/ClientMessage.h152
1 files changed, 81 insertions, 71 deletions
diff --git a/cpp/lib/client/ClientMessage.h b/cpp/lib/client/ClientMessage.h
index 148f9240c8..8661f6b791 100644
--- a/cpp/lib/client/ClientMessage.h
+++ b/cpp/lib/client/ClientMessage.h
@@ -25,89 +25,99 @@
#include <framing/amqp_framing.h>
namespace qpid {
+
namespace client {
+class IncomingMessage;
- /**
- * A representation of messages for sent or recived through the
- * client api.
- *
- * \ingroup clientapi
- */
- class Message{
- qpid::framing::AMQHeaderBody::shared_ptr header;
- std::string data;
- bool redelivered;
- u_int64_t deliveryTag;
+/**
+ * A representation of messages for sent or recived through the
+ * client api.
+ *
+ * \ingroup clientapi
+ */
+class Message {
+ framing::AMQMethodBody::shared_ptr method;
+ framing::AMQHeaderBody::shared_ptr header;
+ std::string data;
+ bool redelivered;
- qpid::framing::BasicHeaderProperties* getHeaderProperties();
- Message(qpid::framing::AMQHeaderBody::shared_ptr& header);
+ // FIXME aconway 2007-02-20: const incorrect, needs const return type.
+ framing::BasicHeaderProperties* getHeaderProperties() const;
+ Message(qpid::framing::AMQHeaderBody::shared_ptr& header);
- public:
- Message(const std::string& data=std::string());
- ~Message();
+ public:
+ Message(const std::string& data=std::string());
+ ~Message();
- /**
- * Allows the application to access the content of messages
- * received.
- *
- * @return a string representing the data of the message
- */
- std::string getData() const { return data; }
+ /**
+ * Allows the application to access the content of messages
+ * received.
+ *
+ * @return a string representing the data of the message
+ */
+ std::string getData() const { return data; }
- /**
- * Allows the application to set the content of messages to be
- * sent.
- *
- * @param data a string representing the data of the message
- */
- void setData(const std::string& _data);
+ /**
+ * Allows the application to set the content of messages to be
+ * sent.
+ *
+ * @param data a string representing the data of the message
+ */
+ void setData(const std::string& _data);
- /**
- * @return true if this message was delivered previously (to
- * any consumer) but was not acknowledged.
- */
- inline bool isRedelivered(){ return redelivered; }
- inline void setRedelivered(bool _redelivered){ redelivered = _redelivered; }
+ /**
+ * @return true if this message was delivered previously (to
+ * any consumer) but was not acknowledged.
+ */
+ bool isRedelivered(){ return redelivered; }
+ void setRedelivered(bool _redelivered){ redelivered = _redelivered; }
- inline u_int64_t getDeliveryTag(){ return deliveryTag; }
+ u_int64_t getDeliveryTag() const;
- const std::string& getContentType();
- const std::string& getContentEncoding();
- qpid::framing::FieldTable& getHeaders();
- u_int8_t getDeliveryMode();
- u_int8_t getPriority();
- const std::string& getCorrelationId();
- const std::string& getReplyTo();
- const std::string& getExpiration();
- const std::string& getMessageId();
- u_int64_t getTimestamp();
- const std::string& getType();
- const std::string& getUserId();
- const std::string& getAppId();
- const std::string& getClusterId();
+ const std::string& getContentType() const;
+ const std::string& getContentEncoding() const;
+ qpid::framing::FieldTable& getHeaders() const;
+ u_int8_t getDeliveryMode() const;
+ u_int8_t getPriority() const;
+ const std::string& getCorrelationId() const;
+ const std::string& getReplyTo() const;
+ const std::string& getExpiration() const;
+ const std::string& getMessageId() const;
+ u_int64_t getTimestamp() const;
+ const std::string& getType() const;
+ const std::string& getUserId() const;
+ const std::string& getAppId() const;
+ const std::string& getClusterId() const;
- void setContentType(const std::string& type);
- void setContentEncoding(const std::string& encoding);
- void setHeaders(const qpid::framing::FieldTable& headers);
- /**
- * Sets the delivery mode. 1 = non-durable, 2 = durable.
- */
- void setDeliveryMode(u_int8_t mode);
- void setPriority(u_int8_t priority);
- void setCorrelationId(const std::string& correlationId);
- void setReplyTo(const std::string& replyTo);
- void setExpiration(const std::string& expiration);
- void setMessageId(const std::string& messageId);
- void setTimestamp(u_int64_t timestamp);
- void setType(const std::string& type);
- void setUserId(const std::string& userId);
- void setAppId(const std::string& appId);
- void setClusterId(const std::string& clusterId);
+ void setContentType(const std::string& type);
+ void setContentEncoding(const std::string& encoding);
+ void setHeaders(const qpid::framing::FieldTable& headers);
+ /**
+ * Sets the delivery mode. 1 = non-durable, 2 = durable.
+ */
+ void setDeliveryMode(u_int8_t mode);
+ void setPriority(u_int8_t priority);
+ void setCorrelationId(const std::string& correlationId);
+ void setReplyTo(const std::string& replyTo);
+ void setExpiration(const std::string& expiration);
+ void setMessageId(const std::string& messageId);
+ void setTimestamp(u_int64_t timestamp);
+ void setType(const std::string& type);
+ void setUserId(const std::string& userId);
+ void setAppId(const std::string& appId);
+ void setClusterId(const std::string& clusterId);
+ /** Get the method used to deliver this message */
+ boost::shared_ptr<framing::AMQMethodBody> getMethod() const
+ { return method; }
+
+ void setMethod(framing::AMQMethodBody::shared_ptr m) { method=m; }
+ boost::shared_ptr<framing::AMQHeaderBody> getHeader();
- // TODO aconway 2007-02-15: remove friendships.
- friend class Channel;
- };
+ // TODO aconway 2007-02-15: remove friendships.
+ friend class IncomingMessage;
+ friend class Channel;
+};
}}