+
+ /**
+ * Constructor.
+ *
+ * @param seq The port name sequence of interest to the application.
+ * @param timeout A subscription timeout value, in ms
+ * (or WAIT_FOREVER).
+ * @param filter An event filter specifying which events are of
+ * interest to the application (see subscr_t).
+ * @param usr_handle An 8 byte user handle that is application-defined.
+ * (treated as binary data).
+ * @param handle_size Size of the usr_handle buffer (it should be at
+ * most 8)
+ */
+ subscr(nameseq seq, __u32 timeout, __u32 filter,
+ const char* usr_handle, size_t handle_size)
+ throw ();
+
+ /// Access to the subscribed name sequence.
+ nameseq& name_seq() throw ();
+
+ /// Access to the subscribed name sequence.
+ const nameseq& name_seq() const throw ();
+
+ /// Set the user handle as a string.
+ void handle(const char* usr_handle) throw ();
+
+ /// Set the user handle as binary data.
+ void handle(const char* usr_handle, size_t handle_size) throw ();
+
+ /// Compares 2 subscription request messages.
+ bool operator == (const subscr& other) const throw ();
+
+};
+
+/// Type of events.
+enum event_t
+{
+
+ /// The port has been published.
+ PUBLISHED = TIPC_PUBLISHED,
+
+ /// The port has been withdrawn.
+ WITHDRAWN = TIPC_WITHDRAWN,
+
+ /// The event has timed out.
+ TIMEOUT = TIPC_SUBSCR_TIMEOUT
+