00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _ACTIVEMQ_COMMANDS_CONSUMERINFO_H_
00019 #define _ACTIVEMQ_COMMANDS_CONSUMERINFO_H_
00020
00021
00022 #ifdef _MSC_VER
00023 #pragma warning( disable : 4290 )
00024 #endif
00025
00026 #include <activemq/commands/ActiveMQDestination.h>
00027 #include <activemq/commands/BaseCommand.h>
00028 #include <activemq/commands/BooleanExpression.h>
00029 #include <activemq/commands/BrokerId.h>
00030 #include <activemq/commands/ConsumerId.h>
00031 #include <activemq/commands/RemoveInfo.h>
00032 #include <activemq/util/Config.h>
00033 #include <decaf/lang/Pointer.h>
00034 #include <string>
00035 #include <vector>
00036
00037 namespace activemq {
00038 namespace commands {
00039
00040 using decaf::lang::Pointer;
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 class AMQCPP_API ConsumerInfo : public BaseCommand {
00052 protected:
00053
00054 Pointer<ConsumerId> consumerId;
00055 bool browser;
00056 Pointer<ActiveMQDestination> destination;
00057 int prefetchSize;
00058 int maximumPendingMessageLimit;
00059 bool dispatchAsync;
00060 std::string selector;
00061 std::string subscriptionName;
00062 bool noLocal;
00063 bool exclusive;
00064 bool retroactive;
00065 unsigned char priority;
00066 std::vector< decaf::lang::Pointer<BrokerId> > brokerPath;
00067 Pointer<BooleanExpression> additionalPredicate;
00068 bool networkSubscription;
00069 bool optimizedAcknowledge;
00070 bool noRangeAcks;
00071 std::vector< decaf::lang::Pointer<ConsumerId> > networkConsumerPath;
00072
00073 public:
00074
00075 const static unsigned char ID_CONSUMERINFO = 5;
00076
00077 private:
00078
00079
00080 int currentPrefetchSize;
00081
00082 private:
00083
00084 ConsumerInfo(const ConsumerInfo&);
00085 ConsumerInfo& operator= (const ConsumerInfo&);
00086
00087 public:
00088
00089 ConsumerInfo();
00090
00091 virtual ~ConsumerInfo();
00092
00093 virtual unsigned char getDataStructureType() const;
00094
00095 virtual ConsumerInfo* cloneDataStructure() const;
00096
00097 virtual void copyDataStructure(const DataStructure* src);
00098
00099 virtual std::string toString() const;
00100
00101 virtual bool equals(const DataStructure* value) const;
00102
00103 Pointer<RemoveInfo> createRemoveCommand() const;
00104
00105 int getCurrentPrefetchSize() const {
00106 return this->currentPrefetchSize;
00107 }
00108
00109 void setCurrentPrefetchSize(int currentPrefetchSize) {
00110 this->currentPrefetchSize = currentPrefetchSize;
00111 }
00112
00113 virtual const Pointer<ConsumerId>& getConsumerId() const;
00114 virtual Pointer<ConsumerId>& getConsumerId();
00115 virtual void setConsumerId( const Pointer<ConsumerId>& consumerId );
00116
00117 virtual bool isBrowser() const;
00118 virtual void setBrowser( bool browser );
00119
00120 virtual const Pointer<ActiveMQDestination>& getDestination() const;
00121 virtual Pointer<ActiveMQDestination>& getDestination();
00122 virtual void setDestination( const Pointer<ActiveMQDestination>& destination );
00123
00124 virtual int getPrefetchSize() const;
00125 virtual void setPrefetchSize( int prefetchSize );
00126
00127 virtual int getMaximumPendingMessageLimit() const;
00128 virtual void setMaximumPendingMessageLimit( int maximumPendingMessageLimit );
00129
00130 virtual bool isDispatchAsync() const;
00131 virtual void setDispatchAsync( bool dispatchAsync );
00132
00133 virtual const std::string& getSelector() const;
00134 virtual std::string& getSelector();
00135 virtual void setSelector( const std::string& selector );
00136
00137 virtual const std::string& getSubscriptionName() const;
00138 virtual std::string& getSubscriptionName();
00139 virtual void setSubscriptionName( const std::string& subscriptionName );
00140
00141 virtual bool isNoLocal() const;
00142 virtual void setNoLocal( bool noLocal );
00143
00144 virtual bool isExclusive() const;
00145 virtual void setExclusive( bool exclusive );
00146
00147 virtual bool isRetroactive() const;
00148 virtual void setRetroactive( bool retroactive );
00149
00150 virtual unsigned char getPriority() const;
00151 virtual void setPriority( unsigned char priority );
00152
00153 virtual const std::vector< decaf::lang::Pointer<BrokerId> >& getBrokerPath() const;
00154 virtual std::vector< decaf::lang::Pointer<BrokerId> >& getBrokerPath();
00155 virtual void setBrokerPath( const std::vector< decaf::lang::Pointer<BrokerId> >& brokerPath );
00156
00157 virtual const Pointer<BooleanExpression>& getAdditionalPredicate() const;
00158 virtual Pointer<BooleanExpression>& getAdditionalPredicate();
00159 virtual void setAdditionalPredicate( const Pointer<BooleanExpression>& additionalPredicate );
00160
00161 virtual bool isNetworkSubscription() const;
00162 virtual void setNetworkSubscription( bool networkSubscription );
00163
00164 virtual bool isOptimizedAcknowledge() const;
00165 virtual void setOptimizedAcknowledge( bool optimizedAcknowledge );
00166
00167 virtual bool isNoRangeAcks() const;
00168 virtual void setNoRangeAcks( bool noRangeAcks );
00169
00170 virtual const std::vector< decaf::lang::Pointer<ConsumerId> >& getNetworkConsumerPath() const;
00171 virtual std::vector< decaf::lang::Pointer<ConsumerId> >& getNetworkConsumerPath();
00172 virtual void setNetworkConsumerPath( const std::vector< decaf::lang::Pointer<ConsumerId> >& networkConsumerPath );
00173
00177 virtual bool isConsumerInfo() const {
00178 return true;
00179 }
00180
00181 virtual Pointer<Command> visit(activemq::state::CommandVisitor* visitor);
00182
00183 };
00184
00185 }}
00186
00187 #endif