00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _ACTIVEMQ_CORE_ACTIVEMQPRODUCER_H_
00018 #define _ACTIVEMQ_CORE_ACTIVEMQPRODUCER_H_
00019
00020 #include <cms/MessageProducer.h>
00021 #include <cms/Message.h>
00022 #include <cms/Destination.h>
00023 #include <cms/DeliveryMode.h>
00024
00025 #include <activemq/util/Config.h>
00026 #include <activemq/commands/ProducerInfo.h>
00027 #include <activemq/core/kernels/ActiveMQProducerKernel.h>
00028
00029 namespace activemq{
00030 namespace core{
00031
00032 using decaf::lang::Pointer;
00033
00034 class ActiveMQSession;
00035
00036 class AMQCPP_API ActiveMQProducer : public cms::MessageProducer {
00037 private:
00038
00039 Pointer<activemq::core::kernels::ActiveMQProducerKernel> kernel;
00040
00041 private:
00042
00043 ActiveMQProducer(const ActiveMQProducer&);
00044 ActiveMQProducer& operator=(const ActiveMQProducer&);
00045
00046 public:
00047
00055 ActiveMQProducer(Pointer<activemq::core::kernels::ActiveMQProducerKernel> kernel);
00056
00057 virtual ~ActiveMQProducer();
00058
00059 public:
00060
00061 virtual void close();
00062
00063 virtual void send(cms::Message* message);
00064
00065 virtual void send(cms::Message* message, cms::AsyncCallback* callback);
00066
00067 virtual void send(cms::Message* message, int deliveryMode, int priority, long long timeToLive);
00068
00069 virtual void send(cms::Message* message, int deliveryMode, int priority, long long timeToLive, cms::AsyncCallback* callback);
00070
00071 virtual void send(const cms::Destination* destination, cms::Message* message);
00072
00073 virtual void send(const cms::Destination* destination, cms::Message* message, cms::AsyncCallback* callback);
00074
00075 virtual void send(const cms::Destination* destination, cms::Message* message,
00076 int deliveryMode, int priority, long long timeToLive);
00077
00078 virtual void send(const cms::Destination* destination, cms::Message* message,
00079 int deliveryMode, int priority, long long timeToLive, cms::AsyncCallback* callback);
00080
00085 virtual void setDeliveryMode(int mode) {
00086 this->kernel->setDeliveryMode(mode);
00087 }
00088
00093 virtual int getDeliveryMode() const {
00094 return this->kernel->getDeliveryMode();
00095 }
00096
00101 virtual void setDisableMessageID(bool value) {
00102 this->kernel->setDisableMessageID(value);
00103 }
00104
00109 virtual bool getDisableMessageID() const {
00110 return this->kernel->getDisableMessageID();
00111 }
00112
00117 virtual void setDisableMessageTimeStamp(bool value) {
00118 this->kernel->setDisableMessageTimeStamp(value);
00119 }
00120
00125 virtual bool getDisableMessageTimeStamp() const {
00126 return this->kernel->getDisableMessageTimeStamp();
00127 }
00128
00133 virtual void setPriority(int priority) {
00134 this->kernel->setPriority(priority);
00135 }
00136
00141 virtual int getPriority() const {
00142 return this->kernel->getPriority();
00143 }
00144
00149 virtual void setTimeToLive(long long time) {
00150 this->kernel->setTimeToLive(time);
00151 }
00152
00157 virtual long long getTimeToLive() const {
00158 return this->kernel->getTimeToLive();
00159 }
00160
00165 virtual void setSendTimeout(long long time) {
00166 this->kernel->setSendTimeout(time);
00167 }
00168
00173 virtual long long getSendTimeout() const {
00174 return this->kernel->getSendTimeout();
00175 }
00176
00177 virtual void setMessageTransformer(cms::MessageTransformer* transformer) {
00178 this->kernel->setMessageTransformer(transformer);
00179 }
00180
00181 virtual cms::MessageTransformer* getMessageTransformer() const {
00182 return this->kernel->getMessageTransformer();
00183 }
00184
00185 public:
00186
00190 bool isClosed() const {
00191 return this->kernel->isClosed();
00192 }
00193
00198 const Pointer<commands::ProducerInfo>& getProducerInfo() const {
00199 return this->kernel->getProducerInfo();
00200 }
00201
00206 const Pointer<commands::ProducerId>& getProducerId() const {
00207 return this->kernel->getProducerId();
00208 }
00209 };
00210
00211 }}
00212
00213 #endif