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 #include "is/isinfo.h"
00010
00011 std::ostream & operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr);
00012
00013 namespace Sct {
00014
00015 class SpecialSubscribeRequest {
00016
00017 friend class SubscriptionManagerImpl;
00018 friend std::ostream & ::operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr);
00019 private:
00020 SpecialSubscribeRequest(const NameOrRegexp & serverPattern,
00021 const NameOrRegexp & objectPattern,
00022 const is::callback_ptr cb) :
00023 m_serverPattern(serverPattern),
00024 m_objectPattern(objectPattern),
00025 m_cb( is::callback::_duplicate(cb) ) {
00026 };
00027 std::ostream & printMeTo(std::ostream & os) const;
00028 const NameOrRegexp m_serverPattern;
00029 const NameOrRegexp m_objectPattern;
00030 const is::callback_var m_cb;
00031 };
00032
00033 };
00034
00035 inline std::ostream & operator<<(std::ostream & os, const Sct::SpecialSubscribeRequest & ssr) {
00036 return ssr.printMeTo(os);
00037 };
00038
00039 #endif