00001 /*------------------------------------------------------------------------------ 00002 Name: SubscribeQueueEntry.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 ------------------------------------------------------------------------------*/ 00006 00007 #ifndef _UTIL_QUEUE_SUBSCRIBEQUEUEENRY_H 00008 #define _UTIL_QUEUE_SUBSCRIBEQUEUEENRY_H 00009 00010 #include <util/MethodName.h> 00011 #include <util/queue/MsgQueueEntry.h> 00012 #include <client/qos/SubscribeQos.h> 00013 #include <client/qos/SubscribeReturnQos.h> 00014 #include <client/key/SubscribeKey.h> 00015 00016 00025 namespace org { namespace xmlBlaster { namespace util { namespace queue { 00026 00027 class Dll_Export SubscribeQueueEntry : public org::xmlBlaster::util::queue::MsgQueueEntry 00028 { 00029 public: 00030 00034 SubscribeQueueEntry(org::xmlBlaster::util::Global& global, 00035 const org::xmlBlaster::client::key::SubscribeKey& subscribeKey, 00036 const org::xmlBlaster::client::qos::SubscribeQos& subscribeQos, 00037 int priority=NORM_PRIORITY, 00038 org::xmlBlaster::util::Timestamp uniqueId = TimestampFactory::getInstance().getTimestamp()); 00039 00040 ~SubscribeQueueEntry(); 00041 00045 SubscribeQueueEntry(const SubscribeQueueEntry& entry); 00046 00050 SubscribeQueueEntry& operator =(const SubscribeQueueEntry& entry); 00051 00052 MsgQueueEntry *getClone() const; 00053 00054 virtual bool isSubscribe() const; 00055 00056 // this should actually be in another interface but since it is an only method we put it here. 00057 const org::xmlBlaster::util::queue::MsgQueueEntry& send(org::xmlBlaster::util::dispatch::I_ConnectionsHandler& connectionsHandler) const; 00058 00062 org::xmlBlaster::client::qos::SubscribeQos getSubscribeQos() const; 00063 00067 org::xmlBlaster::client::key::SubscribeKey getSubscribeKey() const; 00068 00069 org::xmlBlaster::client::qos::SubscribeReturnQos getSubscribeReturnQos() const; 00070 00071 std::string toXml(const std::string& indent="") const; 00072 00073 }; 00074 00075 }}}} // namespace 00076 00077 #endif 00078