WvStreams
include/wvipraw.h
1/* -*- Mode: C++ -*-
2 * Worldvisions Weaver Software:
3 * Copyright (C) 1997-2003 Net Integration Technologies, Inc.
4 *
5 */
6#ifndef __WVIPRAW_H
7#define __WVIPRAW_H
8
9#include "wvfdstream.h"
10#include "wvaddr.h"
11#include <netinet/in.h>
12
32class WvIPRawStream : public WvFDStream
33{
34public:
36 WvIPRawStream(const WvIPAddr &_local, const WvIPAddr &_rem,
37 int ip_protocol = IPPROTO_RAW);
38 virtual ~WvIPRawStream();
39
40 const WvAddr *local() const;
41
47 virtual const WvAddr *src() const;
48 void setdest(const WvIPAddr &_remaddr)
49 { remaddr = _remaddr; }
50
51 void enable_broadcasts();
52
53protected:
54 WvIPAddr localaddr, remaddr;
55
56 virtual size_t uread(void *buf, size_t count);
57 virtual size_t uwrite(const void *buf, size_t count);
58
59public:
60 const char *wstype() const { return "WvIPRawStream"; }
61};
62
63
64#endif // __WVIPRAW_H
Base class for different address types, each of which will have the ability to convert itself to/from...
Base class for streams built on Unix file descriptors.
An IP address is made up of a "dotted quad" – four decimal numbers in the form www....
WvIPRawStream can send and receive packets on a connectionless IP socket.
WvIPRawStream(const WvIPAddr &_local, const WvIPAddr &_rem, int ip_protocol=IPPROTO_RAW)
connect a new socket
virtual size_t uwrite(const void *buf, size_t count)
unbuffered I/O functions; these ignore the buffer, which is handled by write().
virtual const WvAddr * src() const
return the remote address (source of incoming packets, target of outgoing packets).
virtual size_t uread(void *buf, size_t count)
unbuffered I/O functions; these ignore the buffer, which is handled by read().