/**
 * @file RtecUDPAdmin.idl
 *
 * @brief Define the RtecUDPAdmin module
 *
 * RtecUDPAdmin.idl,v 1.3 2001/09/17 20:50:34 coryan Exp
 *
 * TAO's Real-time Event Service is described in:
 *
 * http://doc.ece.uci.edu/~coryan/EC/
 *
 * @author Carlos O'Ryan <coryan@uci.edu>
 */

#ifndef TAO_RTEC_UDP_ADMIN_IDL
#define TAO_RTEC_UDP_ADMIN_IDL

#include "RtecEventComm.idl"

/**
 * @namespace RtecUDPAdmin
 *
 * @brief Define the data structures and interfaces used by UDP-based
 *   gateways
 */
module RtecUDPAdmin
{
  /**
   * @struct UDP_Addr
   *
   * @brief Represent a UDP SAP.
   */
  struct UDP_Addr
  {
    /// The IP address
    unsigned long ipaddr;
    /// The UDP port
    unsigned short port;
  };

  /**
   * @interface AddrServer
   *
   * @brief Defines a interface to configure the mapping between
   *   events and multicast groups (or UDP broadcast or UDP unicast)
   *   addresses.
   */
  interface AddrServer
  {
    /// Get the UDP address give the event header
    /**
     * @param header The event header, used to fetch the type and
     *   source of the event
     * @param addr Return the address used for the given event type
     */
    void get_addr (in RtecEventComm::EventHeader header,
                   out UDP_Addr addr);
  };
};

#endif /* TAO_RTEC_UDP_ADMIN_IDL */
