21 #ifndef __IceStorm_SubscriberRecord_h__
22 #define __IceStorm_SubscriberRecord_h__
24 #include <Ice/Comparable.h>
25 #include <Ice/Exception.h>
26 #include <Ice/ExceptionHelpers.h>
27 #include <Ice/FactoryTableInit.h>
28 #include <Ice/GCObject.h>
29 #include <Ice/Identity.h>
30 #include <Ice/Incoming.h>
31 #include <Ice/LocalObject.h>
32 #include <Ice/Object.h>
33 #include <Ice/ObjectF.h>
34 #include <Ice/Optional.h>
35 #include <Ice/Proxy.h>
36 #include <Ice/ProxyF.h>
37 #include <Ice/StreamHelpers.h>
38 #include <Ice/Value.h>
39 #include <Ice/ValueF.h>
40 #include <IceStorm/IceStorm.h>
41 #include <IceUtil/PushDisableWarnings.h>
42 #include <IceUtil/ScopedArray.h>
43 #include <IceUtil/UndefSysMacros.h>
45 #ifndef ICE_IGNORE_VERSION
46 #if ICE_INT_VERSION / 100 != 307
47 #error Ice version mismatch!
49 #if ICE_INT_VERSION % 100 > 50
50 #error Beta header file detected
52 #if ICE_INT_VERSION % 100 < 0
53 #error Ice patch level mismatch!
57 #ifdef ICE_CPP11_MAPPING // C++11 mapping
62 struct SubscriberRecordKey
67 std::tuple<const ::Ice::Identity&, const ::Ice::Identity&>
70 return std::tie(
topic,
id);
74 struct SubscriberRecord
79 ::std::shared_ptr<::Ice::ObjectPrx>
obj;
82 ::std::shared_ptr<::IceStorm::TopicPrx>
theTopic;
84 std::tuple<const ::std::string&,
87 const ::std::shared_ptr<::Ice::ObjectPrx>&,
88 const ::IceStorm::QoS&,
90 const ::std::shared_ptr<::IceStorm::TopicPrx>&>
100 using Ice::operator<=;
101 using Ice::operator>;
102 using Ice::operator>=;
103 using Ice::operator==;
104 using Ice::operator!=;
114 static const StreamHelperCategory helper = StreamHelperCategoryStruct;
115 static const int minWireSize = 4;
116 static const bool fixedLength =
false;
119 template <
typename S>
125 istr->readAll(
v.topic,
v.id);
132 static const StreamHelperCategory helper = StreamHelperCategoryStruct;
133 static const int minWireSize = 13;
134 static const bool fixedLength =
false;
137 template <
typename S>
143 istr->readAll(
v.topicName,
v.id,
v.link,
v.obj,
v.theQoS,
v.cost,
v.theTopic);
149 #else // C++98 mapping
171 if (
topic != rhs_.topic)
189 if (
topic < rhs_.topic)
193 else if (rhs_.topic <
topic)
201 else if (rhs_.id <
id)
259 static const StreamHelperCategory helper = StreamHelperCategoryStruct;
260 static const int minWireSize = 4;
261 static const bool fixedLength =
false;
264 template <
typename S>
268 write(S* ostr, const ::IceStorm::SubscriberRecordKey&
v)
270 ostr->write(
v.topic);
275 template <
typename S>
289 static const StreamHelperCategory helper = StreamHelperCategoryStruct;
290 static const int minWireSize = 13;
291 static const bool fixedLength =
false;
294 template <
typename S>
298 write(S* ostr, const ::IceStorm::SubscriberRecord&
v)
300 ostr->write(
v.topicName);
304 ostr->write(
v.theQoS);
306 ostr->write(
v.theTopic);
310 template <
typename S>
316 istr->read(
v.topicName);
320 istr->read(
v.theQoS);
322 istr->read(
v.theTopic);
330 #include <IceUtil/PopDisableWarnings.h>