18 #ifndef _ACTIVEMQ_CMSUTIL_CMSTEMPLATE_H_ 19 #define _ACTIVEMQ_CMSUTIL_CMSTEMPLATE_H_ 108 :
SessionCallback(), action(action), parent(parent), destination(destination) {
128 std::string destinationName;
139 const std::string& destinationName)
174 parent->doSend(session, producer, messageCreator);
200 const std::string& selector,
bool noLocal) :
201 SessionCallback(), destination(destination), selector(selector), noLocal(noLocal), message(
NULL), parent(parent) {
225 std::string destinationName;
235 bool noLocal,
const std::string& destinationName) :
254 std::string defaultDestinationName;
256 bool messageIdEnabled;
258 bool messageTimestampEnabled;
262 long long receiveTimeout;
264 bool explicitQosEnabled;
270 long long timeToLive;
296 this->defaultDestination = defaultDestination;
304 return this->defaultDestination;
312 return this->defaultDestination;
325 if (defaultDestinationName != this->defaultDestinationName) {
326 this->defaultDestination =
NULL;
327 this->defaultDestinationName = defaultDestinationName;
339 return this->defaultDestinationName;
350 if (pubSubDomain != isPubSubDomain()) {
351 this->defaultDestination =
NULL;
357 this->messageIdEnabled = messageIdEnabled;
361 return this->messageIdEnabled;
365 this->messageTimestampEnabled = messageTimestampEnabled;
369 return this->messageTimestampEnabled;
373 this->noLocal = noLocal;
377 return this->noLocal;
381 this->receiveTimeout = receiveTimeout;
385 return this->receiveTimeout;
397 this->explicitQosEnabled = explicitQosEnabled;
413 return this->explicitQosEnabled;
425 this->deliveryMode = (deliveryPersistent ? 0 : 1);
437 this->deliveryMode = deliveryMode;
444 return this->deliveryMode;
455 this->priority = priority;
462 return this->priority;
474 this->timeToLive = timeToLive;
481 return this->timeToLive;
526 virtual void execute(
const std::string& destinationName,
ProducerCallback* action);
557 virtual void send(
const std::string& destinationName,
MessageCreator* messageCreator);
583 virtual cms::Message* receive(
const std::string& destinationName);
594 virtual cms::Message* receiveSelected(
const std::string& selector);
621 virtual cms::Message* receiveSelected(
const std::string& destinationName,
const std::string& selector);
639 void createSessionPools();
644 void destroySessionPools();
652 void checkDefaultDestination();
711 const std::string& selector,
bool noLocal);
ProducerExecutor(ProducerCallback *action, CmsTemplate *parent, cms::Destination *destination)
Definition: CmsTemplate.h:105
ReceiveExecutor(CmsTemplate *parent, cms::Destination *destination, const std::string &selector, bool noLocal)
Definition: CmsTemplate.h:199
SendExecutor(MessageCreator *messageCreator, CmsTemplate *parent)
Definition: CmsTemplate.h:166
Defines the interface for a factory that creates connection objects, the Connection objects returned ...
Definition: ConnectionFactory.h:41
ResolveProducerExecutor(ProducerCallback *action, CmsTemplate *parent, const std::string &destinationName)
Definition: CmsTemplate.h:137
Root of all messages.
Definition: Message.h:88
A Destination object encapsulates a provider-specific address.
Definition: Destination.h:39
#define AMQCPP_API
Definition: Config.h:30
#define NULL
Definition: Config.h:33
Callback for sending a message to a CMS destination.
Definition: ProducerCallback.h:33
virtual ~ProducerExecutor()
Definition: CmsTemplate.h:111
virtual const std::string getDefaultDestinationName() const
Gets the name of the default destination to be used for send/receive operations.
Definition: CmsTemplate.h:338
std::string selector
Definition: CmsTemplate.h:187
cms::Message * getMessage()
Definition: CmsTemplate.h:212
Messages will be consumed when the transaction commits.
Definition: Session.h:139
virtual int getDeliveryMode() const
Return the delivery mode to use when sending a message.
Definition: CmsTemplate.h:443
The client's connection to its provider.
Definition: Connection.h:70
Callback for executing any number of operations on a provided CMS Session.
Definition: SessionCallback.h:33
Definition: CmsTemplate.h:91
virtual ~ResolveProducerExecutor()
Definition: CmsTemplate.h:143
Definition: CmsTemplate.h:183
Definition: CmsTemplate.h:222
virtual long long getTimeToLive() const
Return the time-to-live of the message when sending.
Definition: CmsTemplate.h:480
A pool of CMS sessions from the same connection and with the same acknowledge mode.
Definition: SessionPool.h:39
Definition: CmsTemplate.h:153
static const long long RECEIVE_TIMEOUT_INDEFINITE_WAIT
Timeout value indicating a blocking receive without timeout.
Definition: CmsTemplate.h:72
static const long long DEFAULT_TIME_TO_LIVE
My default, messages should live forever.
Definition: CmsTemplate.h:82
virtual void setMessageIdEnabled(bool messageIdEnabled)
Definition: CmsTemplate.h:356
cms::Destination * destination
Definition: CmsTemplate.h:186
A Session object is a single-threaded context for producing and consuming messages.
Definition: Session.h:105
virtual long long getReceiveTimeout() const
Definition: CmsTemplate.h:384
virtual void setNoLocal(bool noLocal)
Definition: CmsTemplate.h:372
virtual void setDeliveryMode(int deliveryMode)
Set the delivery mode to use when sending a message.
Definition: CmsTemplate.h:436
virtual void setTimeToLive(long long timeToLive)
Set the time-to-live of the message when sending.
Definition: CmsTemplate.h:473
virtual cms::Destination * getDestination(cms::Session *session AMQCPP_UNUSED)
Definition: CmsTemplate.h:208
CmsTemplate * parent
Definition: CmsTemplate.h:95
virtual void setPubSubDomain(bool pubSubDomain)
Definition: CmsDestinationAccessor.h:68
cms::Destination * destination
Definition: CmsTemplate.h:96
virtual ~ReceiveExecutor()
Definition: CmsTemplate.h:204
virtual bool isMessageTimestampEnabled() const
Definition: CmsTemplate.h:368
ProducerCallback * action
Definition: CmsTemplate.h:94
Definition: CmsTemplate.h:125
virtual void setPriority(int priority)
Set the priority of a message when sending.
Definition: CmsTemplate.h:454
virtual cms::Destination * getDefaultDestination()
Retrieves the default destination to be used for send/receive operations.
Definition: CmsTemplate.h:311
virtual bool isNoLocal() const
Definition: CmsTemplate.h:376
virtual ~SendExecutor()
Definition: CmsTemplate.h:170
virtual void setMessageTimestampEnabled(bool messageTimestampEnabled)
Definition: CmsTemplate.h:364
CmsTemplate * parent
Definition: CmsTemplate.h:190
virtual ~ResolveReceiveExecutor()
Definition: CmsTemplate.h:239
A client uses a MessageProducer object to send messages to a Destination.
Definition: MessageProducer.h:60
virtual const cms::Destination * getDefaultDestination() const
Retrieves the default destination to be used for send/receive operations.
Definition: CmsTemplate.h:303
virtual void setExplicitQosEnabled(bool explicitQosEnabled)
Set if the QOS values (deliveryMode, priority, timeToLive) should be used for sending a message...
Definition: CmsTemplate.h:396
A client uses a MessageConsumer to received messages from a destination.
Definition: MessageConsumer.h:63
CmsTemplate simplifies performing synchronous CMS operations.
Definition: CmsTemplate.h:60
bool noLocal
Definition: CmsTemplate.h:188
cms::Message * message
Definition: CmsTemplate.h:189
virtual int getPriority() const
Return the priority of a message when sending.
Definition: CmsTemplate.h:461
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements...
Definition: CachedConsumer.h:24
virtual void setDeliveryPersistent(bool deliveryPersistent)
Set whether message delivery should be persistent or non-persistent, specified as boolean value ("tru...
Definition: CmsTemplate.h:424
ResolveReceiveExecutor(CmsTemplate *parent, const std::string &selector, bool noLocal, const std::string &destinationName)
Definition: CmsTemplate.h:234
virtual void setReceiveTimeout(long long receiveTimeout)
Definition: CmsTemplate.h:380
virtual void setDefaultDestination(cms::Destination *defaultDestination)
Sets the destination object to be used by default for send/receive operations.
Definition: CmsTemplate.h:295
Extends the CmsAccessor to add support for resolving destination names.
Definition: CmsDestinationAccessor.h:35
virtual void setPubSubDomain(bool pubSubDomain)
Indicates whether the default destination is a topic (true) or a queue (false).
Definition: CmsTemplate.h:349
virtual cms::Destination * getDestination(cms::Session *session AMQCPP_UNUSED)
Definition: CmsTemplate.h:115
static const int DEFAULT_PRIORITY
Default message priority.
Definition: CmsTemplate.h:77
A pooled session object that wraps around a delegate session.
Definition: PooledSession.h:37
virtual void setDefaultDestinationName(const std::string &defaultDestinationName)
Sets the name of the default destination to be used from send/receive operations. ...
Definition: CmsTemplate.h:324
virtual void doInCms(cms::Session *session, cms::MessageProducer *producer)
Execute an action given a session and producer.
Definition: CmsTemplate.h:173
Creates the user-defined message to be sent by the CmsTemplate.
Definition: MessageCreator.h:34
virtual bool isMessageIdEnabled() const
Definition: CmsTemplate.h:360
static const long long RECEIVE_TIMEOUT_NO_WAIT
Timeout value indicating that a receive operation should check if a message is immediately available ...
Definition: CmsTemplate.h:67
virtual bool isExplicitQosEnabled() const
If "true", then the values of deliveryMode, priority, and timeToLive will be used when sending a mess...
Definition: CmsTemplate.h:412