Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

SpecialSubscribeRequest.h

00001 
00002 #ifndef SCT_SPECIALSUBSCRIBEREQUEST_H
00003 #define SCT_SPECIALSUBSCRIBEREQUEST_H
00004 
00005 #include "SpecialSubscribeRequest.fwd"
00006 
00007 #include "SubscriptionManagerImpl.fwd"
00008 #include "NameOrRegexp.h"
00009 
00010 std::ostream & operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr);
00011 
00012 namespace Sct {
00013   
00014   class SpecialSubscribeRequest {
00015     // we are going to prevent anyone except SubscriptionManagerImpl from making us
00016     friend class SubscriptionManagerImpl;
00017     friend std::ostream & ::operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr);
00018   private:
00019     SpecialSubscribeRequest(const NameOrRegexp & serverPattern,
00020                             const NameOrRegexp & objectPattern,
00021                             const is::callback_ptr cb) :
00022       m_serverPattern(serverPattern),
00023       m_objectPattern(objectPattern),
00024       m_cb(cb) {
00025     };
00026     std::ostream & printMeTo(std::ostream & os) const {
00027       return os << "SpecialSubscribeRequest["
00028                 << "Server[" << m_serverPattern << "]"
00029                 << ", " 
00030                 << "Object[" << m_objectPattern << "]"
00031                 << "]";
00032     };
00033     const NameOrRegexp m_serverPattern;
00034     const NameOrRegexp m_objectPattern;
00035     const is::callback_ptr m_cb;
00036   };
00037 
00038 };
00039 
00040 inline std::ostream & operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr) {
00041   return ssr.printMeTo(os);
00042 };
00043 
00044 #endif

Generated on Thu Feb 3 17:37:43 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5