/usr/include/ace/SOCK_Dgram_Bcast.h is in libace-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | // -*- C++ -*-
//=============================================================================
/**
* @file SOCK_Dgram_Bcast.h
*
* $Id: SOCK_Dgram_Bcast.h 80826 2008-03-04 14:51:23Z wotte $
*
* @author Doug Schmidt
*/
//=============================================================================
#ifndef ACE_SOCK_DGRAM_BCAST_H
#define ACE_SOCK_DGRAM_BCAST_H
#include /**/ "ace/pre.h"
#include /**/ "ace/ACE_export.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/SOCK_Dgram.h"
#include "ace/INET_Addr.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Bcast_Node
*
* @brief Linked list of broadcast interfaces.
*/
class ACE_Export ACE_Bcast_Node
{
public:
/// Default constructor.
ACE_Bcast_Node (ACE_INET_Addr &,
ACE_Bcast_Node *);
/// Destructor.
~ACE_Bcast_Node (void);
/// Broadcast address for the interface.
ACE_INET_Addr bcast_addr_;
/// Pointer to the next interface in the chain.
ACE_Bcast_Node *next_;
};
/**
* @class ACE_SOCK_Dgram_Bcast
*
* @brief Defines the member functions for the ACE_SOCK datagram
* abstraction.
*/
class ACE_Export ACE_SOCK_Dgram_Bcast : public ACE_SOCK_Dgram
{
public:
// = Initialization and termination methods.
/// Default constructor.
ACE_SOCK_Dgram_Bcast (void);
ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0,
const ACE_TCHAR *host_name = 0);
/// Default dtor.
~ACE_SOCK_Dgram_Bcast (void);
// Initiate a connectionless datagram broadcast endpoint.
/// Initiate a connectionless datagram broadcast endpoint.
int open (const ACE_Addr &local,
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0,
const ACE_TCHAR *host_name = 0);
/// Close up and release dynamically allocated resources.
int close (void);
/// Broadcast the datagram to every interface. Returns the average
/// number of bytes sent.
ssize_t send (const void *buf,
size_t n,
u_short portnum,
int flags = 0) const;
/// Broadcast the @c iov datagrams to every interface. Returns the
/// average number of bytes sent.
ssize_t send (const iovec iov[],
int n,
u_short portnum,
int flags = 0) const;
/// Broadcast an N byte datagram to ADDR (note that addr must be
/// preassigned to the broadcast address of the subnet...).
ssize_t send (const void *buf,
size_t n,
const ACE_Addr &addr,
int flags = 0) const;
/**
* Broadcast an @a iovec of size @a n to @a addr as a datagram (note
* that addr must be preassigned to the broadcast address of the
* subnet...)
*/
ssize_t send (const iovec iov[],
int n,
const ACE_Addr &addr,
int flags = 0) const;
/// Dump the state of an object.
void dump (void) const;
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
private:
/// Make broadcast available for Datagram socket.
int mk_broadcast (const ACE_TCHAR *host_name);
/// Points to the head of the list of broadcast interfaces.
ACE_Bcast_Node *if_list_;
/// Do not allow this function to percolate up to this interface...
int get_remote_addr (ACE_Addr &) const;
};
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/SOCK_Dgram_Bcast.inl"
#endif /* __ACE_INLINE__ */
#include /**/ "ace/post.h"
#endif /* ACE_SOCK_DGRAM_BCAST_H */
|