Go to the documentation of this file.00001 #ifndef QPID_MESSAGING_MESSAGE_H
00002 #define QPID_MESSAGING_MESSAGE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "qpid/messaging/ImportExport.h"
00025
00026 #include "qpid/messaging/Duration.h"
00027 #include "qpid/types/Exception.h"
00028 #include "qpid/types/Variant.h"
00029
00030 #include <string>
00031
00032 namespace qpid {
00033 namespace messaging {
00034
00035 class Address;
00036 class Codec;
00037 struct MessageImpl;
00038
00042 class QPID_MESSAGING_CLASS_EXTERN Message
00043 {
00044 public:
00045 QPID_MESSAGING_EXTERN Message(const std::string& bytes = std::string());
00046 QPID_MESSAGING_EXTERN Message(const char*, size_t);
00047 QPID_MESSAGING_EXTERN Message(const Message&);
00048 QPID_MESSAGING_EXTERN ~Message();
00049
00050 QPID_MESSAGING_EXTERN Message& operator=(const Message&);
00051
00052 QPID_MESSAGING_EXTERN void setReplyTo(const Address&);
00053 QPID_MESSAGING_EXTERN const Address& getReplyTo() const;
00054
00055 QPID_MESSAGING_EXTERN void setSubject(const std::string&);
00056 QPID_MESSAGING_EXTERN const std::string& getSubject() const;
00057
00063 QPID_MESSAGING_EXTERN void setContentType(const std::string&);
00069 QPID_MESSAGING_EXTERN const std::string& getContentType() const;
00070
00076 QPID_MESSAGING_EXTERN void setMessageId(const std::string&);
00077 QPID_MESSAGING_EXTERN const std::string& getMessageId() const;
00078
00085 QPID_MESSAGING_EXTERN void setUserId(const std::string&);
00086 QPID_MESSAGING_EXTERN const std::string& getUserId() const;
00087
00095 QPID_MESSAGING_EXTERN void setCorrelationId(const std::string&);
00096 QPID_MESSAGING_EXTERN const std::string& getCorrelationId() const;
00097
00103 QPID_MESSAGING_EXTERN void setPriority(uint8_t);
00104 QPID_MESSAGING_EXTERN uint8_t getPriority() const;
00105
00111 QPID_MESSAGING_EXTERN void setTtl(Duration ttl);
00115 QPID_MESSAGING_EXTERN Duration getTtl() const;
00116
00123 QPID_MESSAGING_EXTERN void setDurable(bool durable);
00124 QPID_MESSAGING_EXTERN bool getDurable() const;
00125
00133 QPID_MESSAGING_EXTERN bool getRedelivered() const;
00139 QPID_MESSAGING_EXTERN void setRedelivered(bool);
00140
00149 QPID_MESSAGING_EXTERN const qpid::types::Variant::Map& getProperties() const;
00150 QPID_MESSAGING_EXTERN qpid::types::Variant::Map& getProperties();
00151
00158 QPID_MESSAGING_EXTERN void setContent(const std::string&);
00163 QPID_MESSAGING_EXTERN void setContent(const char* chars, size_t count);
00164
00166 QPID_MESSAGING_EXTERN std::string getContent() const;
00173 QPID_MESSAGING_EXTERN const char* getContentPtr() const;
00175 QPID_MESSAGING_EXTERN size_t getContentSize() const;
00176
00177 QPID_MESSAGING_EXTERN void setProperty(const std::string&, const qpid::types::Variant&);
00178 private:
00179 MessageImpl* impl;
00180 friend struct MessageImplAccess;
00181 };
00182
00183 struct QPID_MESSAGING_CLASS_EXTERN EncodingException : qpid::types::Exception
00184 {
00185 QPID_MESSAGING_EXTERN EncodingException(const std::string& msg);
00186 };
00187
00197 QPID_MESSAGING_EXTERN void decode(const Message& message,
00198 qpid::types::Variant::Map& map,
00199 const std::string& encoding = std::string());
00209 QPID_MESSAGING_EXTERN void decode(const Message& message,
00210 qpid::types::Variant::List& list,
00211 const std::string& encoding = std::string());
00221 QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::Map& map,
00222 Message& message,
00223 const std::string& encoding = std::string());
00233 QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::List& list,
00234 Message& message,
00235 const std::string& encoding = std::string());
00236
00237 }}
00238
00239 #endif