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
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