Programmer's Guide to the WvStreams Libraries

Net Integration Technologies R & D


Table of Contents
Introduction
I. The Utilities Library
Introduction
1. Basic String Handling
String Utilities (strutils.cc)
Version String Manipulation (verstring.cc)
Hexadecimal formating tools (WvHex.cc)
Crypto stuff (strcrypt.cc)
2. WvString - dynamic character strings
Introduction
WvString Examples
WvStringTable
WvStringList
3. WvLinkList - type-safe linked lists and iterators
How to create a WvLinkList?
4. WvHashTable - type-safe hash tables and iterators
How to create a WvHashTable?
5. WvBuffer - dynamically-resizing binary buffers
WvBuffer (WvBuffer.cc)
WvBufferStore - basic buffer storage class
6. WvDirIter
7. WvEncoder - A top-level data encoder class
An encoding tool (WvBase64.cc)
Another encoding tool (WvBackSlash.cc)
8. WvCrash - automatic stack backtrace generation
9. WvTclString
II. The Streams Library
10. WvStream - communications fundamentals
Basic WvStream Examples
Reading and Writing
Waiting on a stream with select()
Callback Functions
Delays and Timeouts
11. Some Simple Streams
WvFile - accessing Unix files
WvFileWatcher - waiting for a file to change
WvPipe - talking to subtasks
WvModem - baud rates and terminal modes
12. Dealing with Log Messages
WvLog - printing log messages
WvLogRcv - receiving and disposing of log messages
WvLogBuffer - saving log messages to a buffer
WvLogFile - sending log messages to a file
WvSyslog - sending log messages to syslog
An example of WvPipe and WvLog together
13. WvStreamList - dealing with multiple streams
Don't do this
Do this instead
An Interesting Example
14. Some Magical Streams
WvStreamClone - a stream within a stream
WvSplitStream - separating read and write streams
WvLoopback - talking to yourself across fork()
15. Some Unusual Streams
WvTimeStream - timed events
WvTimeOutStream - timed out
WvProtoStream - a protocol state machine
16. The Magic of WvCallBack
WvCallback - What does it do?
WvCallback - How to create your own WvCallback?
III. The IPStreams (TCP/IP sockets interface) Library
17. Support Classes
WvAddr - storing an arbitrary network address
WvResolver - Background DNS name resolution
18. Interfacing to Linux Kernel Features
WvInterface - manipulating network interfaces
WvIPRoute - manipulating the routing table
WvIPFirewall - basic ipchains firewall interface
WvIPAliaser - using Linux IP aliasing
WvTunDev - using Linux tunnel devices
WvDcp -
19. WvUDP - using udp datagrams
20. WvUDP2 - logically separate udp datagram connections
21. WvTCP - using tcp streams
22. WvHTTP - HTTP URL downloader
23. WvURL
24. WvUnixConn
IV. The ConfigFile (.ini manager) Library
25. Configuration Entries
26. Configuration Sections
27. Configuration Files (The WvConf Class)
V. Network Mapping and Intelligence - the NetMap Library
28. WvNetCap - network packet capture
29. WvNetMap - raw host information
30. WvNetIntelligence - network map reduction
31. WvPingProbe - active probing
32. WvNetGuide - route manipulation and overrides