Fawkes API
Fawkes Development Version
datagram_multicast.h
1
2
/***************************************************************************
3
* datagram_multicast.h - Fawkes multicast datagram socket (UDP)
4
*
5
* Created: Sun Nov 26 17:23:25 2006
6
* Copyright 2006 Tim Niemueller [www.niemueller.de]
7
*
8
****************************************************************************/
9
10
/* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version. A runtime exception applies to
14
* this software (see LICENSE.GPL_WRE file mentioned below for details).
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Library General Public License for more details.
20
*
21
* Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22
*/
23
24
#ifndef _NETCOMM_SOCKET_DATAGRAM_MULTICAST_H_
25
#define _NETCOMM_SOCKET_DATAGRAM_MULTICAST_H_
26
27
#include <netcomm/socket/socket.h>
28
#include <netinet/in.h>
29
30
namespace
fawkes
{
31
32
class
MulticastDatagramSocket :
public
Socket
33
{
34
public
:
35
MulticastDatagramSocket
(
AddrType
addr_type
,
36
const
char
* multicast_addr_s,
37
unsigned
short
port,
38
float
timeout
= 0.f);
39
MulticastDatagramSocket
(
MulticastDatagramSocket
&s);
40
virtual
~MulticastDatagramSocket
();
41
42
MulticastDatagramSocket
&
operator=
(
MulticastDatagramSocket
&s);
43
44
virtual
Socket
*
clone
();
45
46
virtual
void
bind
();
47
virtual
void
bind
(
const
unsigned
short
int
port);
48
virtual
void
bind
(
const
unsigned
short
int
port,
const
char
*hostname);
49
50
virtual
void
send
(
void
*buf,
size_t
buf_len);
51
virtual
void
52
send
(
void
*buf,
size_t
buf_len,
const
struct
sockaddr *to_addr, socklen_t addr_len)
53
{
54
send
(buf, buf_len);
55
}
56
57
void
set_loop
(
bool
loop);
58
void
set_ttl
(
int
ttl);
59
60
private
:
61
struct ::sockaddr_in *multicast_addr;
62
};
63
64
}
// end namespace fawkes
65
66
#endif
fawkes::MulticastDatagramSocket::operator=
MulticastDatagramSocket & operator=(MulticastDatagramSocket &s)
Assignment operator.
Definition:
datagram_multicast.cpp:88
fawkes::MulticastDatagramSocket::clone
virtual Socket * clone()
Clone socket.
Definition:
datagram_multicast.cpp:163
fawkes::MulticastDatagramSocket::set_loop
void set_loop(bool loop)
Set loopback of sent packets.
Definition:
datagram_multicast.cpp:189
fawkes::MulticastDatagramSocket::send
virtual void send(void *buf, size_t buf_len)
Send data.
Definition:
datagram_multicast.cpp:175
fawkes::MulticastDatagramSocket::set_ttl
void set_ttl(int ttl)
Set multicast time-to-live (TTL)
Definition:
datagram_multicast.cpp:201
fawkes::MulticastDatagramSocket::MulticastDatagramSocket
MulticastDatagramSocket(AddrType addr_type, const char *multicast_addr_s, unsigned short port, float timeout=0.f)
Constructor.
Definition:
datagram_multicast.cpp:57
fawkes::MulticastDatagramSocket
Definition:
datagram_multicast.h:38
fawkes
fawkes::MulticastDatagramSocket::~MulticastDatagramSocket
virtual ~MulticastDatagramSocket()
Destructor.
Definition:
datagram_multicast.cpp:78
fawkes::MulticastDatagramSocket::bind
virtual void bind()
Bind socket.
Definition:
datagram_multicast.cpp:112
fawkes::Socket::timeout
float timeout
Definition:
socket.h:144
fawkes::Socket::AddrType
AddrType
Address type specification.
Definition:
socket.h:81
fawkes::Socket
Definition:
socket.h:69
fawkes::Socket::addr_type
AddrType addr_type
Definition:
socket.h:142
src
libs
netcomm
socket
datagram_multicast.h
Generated by
1.8.17