#ifndef POSIXX_LINUX_TIPC_HPP_
#define POSIXX_LINUX_TIPC_HPP_
-#include "../basic_socket.hpp" // posixx::socket
+#include "../socket/basic_socket.hpp" // posixx::socket
#include <linux/tipc.h> // all tipc stuff
#include <cstring> // memcpy
/**
* Port sequence.
*
- * @see Multicast
* @see tipc_name_seq struct from linux/tipc.h.
*/
struct nameseq: tipc_name_seq
* @param instance Lower and upper bound.
*/
nameseq(__u32 type, __u32 instance) throw ();
-};
-/**
- * Multicast port sequence.
- *
- * It's a port sequence just like nameseq used to simplify the use of the
- * sockaddr.
- *
- * @see nameseq
- * @see Estructura tipc_name_seq de linux/tipc.h
- */
-struct multicast: tipc_name_seq
-{
- /**
- * Constructor.
- *
- * @param type Type of the multicast sequence.
- * @param lower Lower bound.
- * @param upper Upper bound.
- */
- multicast(__u32 type, __u32 lower, __u32 upper) throw ();
- /**
- * Constructor.
- *
- * @param type Type of the multicast sequence.
- * @param instance Lower and upper bound.
- */
- multicast(__u32 type, __u32 instance) throw ();
};
/**
*
* @see TIPC documentation: 1.4.3 Name Subscriptions
*/
-enum subcription_t
+enum subscr_t
{
/**
- * Causes the topology service to generate a event::PUBLISHED event
+ * Causes the topology service to generate a PUBLISHED event
* for each port name or port name sequence it finds that overlaps
- * the specified port name sequence; a TIPC_WITHDRAWN event is issued
+ * the specified port name sequence; a WITHDRAWN event is issued
* each time a previously reported name becomes unavailable.
*
* Allows the topology service to inform the application if there
*
* @see TIPC documentation: 1.4.3 Name Subscriptions
*/
-struct subscription: tipc_subscr
+struct subscr: tipc_subscr
{
/**
* Constructor.
* @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 subscription_t).
+ * interest to the application (see subscr_t).
* @param usr_handle An 8 byte user handle that is application-defined.
*/
- subscription(nameseq seq, __u32 timeout, __u32 filter,
+ subscr(nameseq seq, __u32 timeout, __u32 filter,
const char* usr_handle = "") 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
+};
+
/**
* Event message.
*
* @see TIPC documentation: 1.4.3 Name Subscriptions
*/
-struct event: tipc_event
+struct subscr_event: tipc_event
{
- /// Type of events.
- enum type_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
- };
};
/**
{
ID = TIPC_ADDR_ID, ///< Port ID
NAME = TIPC_ADDR_NAME, ///< Port name
- NAMESEQ = TIPC_ADDR_NAMESEQ, ///< Name sequence or multicast
+ NAMESEQ = TIPC_ADDR_NAMESEQ ///< Name sequence or multicast
};
/**
*/
sockaddr(nameseq nameseq, scope_t scope = ZONE) throw ();
- /**
- * Constructor using a multicast port name sequence.
- *
- * @param mcast Multicast port name sequence.
- * @param scope Bind scope.
- */
- sockaddr(multicast mcast, scope_t scope = ZONE) throw ();
-
/// Type of TIPC address
type_t type() const throw ();
}
inline
-posixx::linux::tipc::multicast::multicast(__u32 t, __u32 low, __u32 up)
- throw ()
-{
- type = t;
- lower = low;
- upper = up;
-}
-
-inline
-posixx::linux::tipc::multicast::multicast(__u32 t, __u32 instance) throw ()
-{
- type = t;
- lower = instance;
- upper = instance;
-}
-
-inline
-posixx::linux::tipc::subscription::subscription(nameseq s, __u32 t, __u32 f,
+posixx::linux::tipc::subscr::subscr(nameseq s, __u32 t, __u32 f,
const char* uh) throw ()
{
seq = s;
addr.nameseq = nameseq;
}
-inline
-posixx::linux::tipc::sockaddr::sockaddr(multicast mcast, scope_t s) throw ()
-{
- family = AF_TIPC;
- addrtype = TIPC_ADDR_MCAST;
- scope = s;
- addr.nameseq = mcast;
-}
-
inline
posixx::linux::tipc::sockaddr::type_t posixx::linux::tipc::sockaddr::type()
const throw ()